¿Cómo puedo hacer que un número que ingreso en una hoja automáticamente pase a otra hoja?

Hola Fernando, como puedo hacer que un número que ingreso en una hoja, (en una celda fija que se utilizaría solo de ingresos) automáticamente pase a otra hoja y quede registrada, asociada a un nombre dentro de esta otra hoja.
Agradecido de antemano
Vitoco

1 Respuesta

Respuesta
1
Para esta tarea deberás recurrir a una pequeña macro, toda vez que no existe procedimiento normal de MS Excel para lograrlo.
Deberías utilizar una macro que, por ejemplo, copie el contenido de una celda y lo pegue -como valor- en la hoja/celda de destino que le indiques.
A este fin, activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código:
Sub Pegaval()
EnHoja = "Hoja1"
EnRango = "H5"
Selection. Copy
Sheets(EnHoja). Range(EnRango). PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
Al inicio del código verás dos variables donde le podrás indicar en qué hoja y que celda de ella recibirán el valor del la celda que tengas seleccionada al ejecutar la macro Pegaval.
Cierra el editor de Visual Basic y graba el archivo.
Espero que esto te ayude.
Un abrazo!
Fernando
Me arroja un error '9'.
Subíndice fuera de intervalo. Al depurar marca en amarillo la siguiente frase:
Sheets(EnHoja).Range(EnRango).PasteSpecial (xlPasteValues)
¿Habrá algún error de tipeo?
Gracias
A modo de ejemplo, puse dentro de la macro:
EnHoja = "Hoja1"
EnRango = "H5"
Asegúrate que estas son las direcciones donde quieres que el valor de la celda activa sea pegado.
Si no reemplaza Hoja1 por el nombre de la hoja donde deberán ir los datos (obviamente, tal hoja debe existir para que no te salte el error que mencionaste) y, de la misma manera con la dirección de la celda de destino.
Si ambas direcciones son correctas, el contenido de la celda seleccionada al momento de ejecutar la macro será pegado en tal celda de la hoja indicada. La celda de destino no debe estar protegida, claro está.
Prueba con esto y dime.
Un abrazo!
Fernando
Ahora, como puedo hacer que el numero se registre como un listado, ya que solo se graba en una celda especifica, en este caso H5, ¿pero es posible que se lleve una especie de histórico?.
OK, aquí estaría una macro modificada para que agregue a continuación de la celda ocupada los distintos valores que envíes usando la macro.
Voy a suponer que la primer celda (H5) es para un titulo y luego se irán agregando datos debajo de ella, fila a fila.
Sub Pegaval()
EnHoja = "Hoja1"
EnRango = "H5"
Selection.Copy
With Sheets(EnHoja).Range(EnRango)
If .End(xlDown).Row > 50000 Then
.Offset(1).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
Else
.End(xlDown).Offset(1).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End If
End With
End Sub
Recuerda que debes cambiar el nombre de al hoja y de la celda donde quieres que esto ocurra y que tal celda debe tener un titulo o algo así.
Espero haberte satisfecho.
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas