Necesito poner en una celda de otra hoja el valor de la celda activa en otra hoja diferente

En una hoja se busca el dato introducido con Target. Necesito copiar otra celda de la fila activa y pasar su valor a otra celda de otra hoja

1 Respuesta

Respuesta
2

Te anexo la macro.
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dam
If Not Intersect(Target, Range("A:A")) Is Nothing Then
valoractivo = Target.Value
Worksheets("otra hoja").Range("otra celda").Value = valoractivo
End If
End Sub

En la macro Rango a buscar es A:A (columna A), cambialo por el rango que necesitas.

Actualizar el valor "otra hoja" y "otra celda" por los datos reales que necesitas.

Saludos. Dam

Podrías cerrar la pregunta.

Gracias Dam pero no consigo que funcione. Tampoco me deja pegar aquí las instrucciones

If Target.Row<3 Then Exit Sub

If Target.Column=6 Then

If Target.Value>199 Then

ElseIf Target.Column=7 Then

If Target.Value>199 Then

Luego pongo aquí tu macro y no vá

Lo único que tienes que poner de mi macro son estas 2 líneas

valoractivo = Target.Value
Worksheets("otra hoja").Range("otra celda").Value = valoractivo

Pero las tienes que adecuar con tus datos

O dime qué es todo lo que necesitas y te hago la macro completa, pero me tienes que dda ejemplos y cómo se llama tus hojas

Saludos. Dam

En realidad el valor que quiero copiar esta en la misma fila que la celda activa pero EN OTRA COLUMNA

Por eso

valoractivo = Target.Value

Con esto tienes en la variable valoractivo el dato que recién se capturó

Luego en otra línea de código tienes que poner

Range("OTRACOLUMNA").Value = valoractivo

Yo puse OTRACOLUMNA, porque no conozco el lugar donde se va a poner, porque no me lo has dicho, pero si por ejemplo, lo quieres en la celda F14, tienes que poner así

Range("F14").Value = valoractivo

Saludos. DAm

Si te son útiles los tips, podrías cerrar la pregunta.

PERDONA DAM ME PARECE QUE DEBO EXPLICARLO MEJOR

EL PROBLEMA ES DIFERENTE Y ES ESTE

En la hoja 1 se encuentran los datos de alumnos (Columna A= nº de Alumno, casilla B= nombre etc) En esta hoja se introducen pagos en las columnas F y G, Rango (F3:F45,G3:G45) manualmente.

En la hoja 2 hay un recibo de matricula modelo que se autorrellena en función del valor de la celda I7 (que es el nº de alujmno). Es decir cuando se escribe un tres por ejemplo busca los datos del alumno 3 y rellena el recibo.

Trato de hacer esto en automático, es decir cuando se escriba un pago en la hoja1 en las columnas F o G la rutina debe capturar el nº de alumno (Rango A:A que le corresponde en la misma fila) y pegarlo en la casilla Hoja2 I7 calcular (rellenar los datos) e imprimir.

Ejemplo, escribo 200 en F5, la rutina debe capturar el valor de A5 (Que es tres) pegarlo en Hoja2 I7 Etc. Consigo hacer todo excepto escribir el valor en I7

Eso me hubieras dicho desde un principio.

Pon lo siguiente

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dam
If Not Intersect(Target, Range("F:G")) Is Nothing Then
Worksheets("Hoja2").Range("I7") = Range("A" & Target.Row)
End If
End Sub

La macro que te estoy enviando significa que, cada vez que pongas algo en las columnas de la F a la G

Automáticamente escriba en la Hoja2, celda I7 el valor que tienes en la columna A del renglón de "Target"

Es decir que si pones 200 en F5, en Target. Row tenemos un 5, luego en

Range ("A" & Target.Row)

Quedaría

Range("A5")

Si en A5 tienes un 3

Entonces en Hoja2, celda I7 te va a poner el 3

Como no tengo tu macro pues no sé en qué renglón debes poner

Worksheets("Hoja2").Range("I7") = Range("A" & Target.Row)

Saludos. Dam

Si te funciona, podrías cerrar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas