Macro (buscarv en otra hoja y copiar en otra hoja)

Buenas, Muy buenos tutoriales, me han servido de mucho(Gracias).

Pero lo que necesito ahora se me complico mucho; necesito para el trabajo una macro donde haga algo similar al buscarv. Es decir que realice un bucarv en la hoja1 y copie sus datos correspondientes en la hoja2.

Ejemplo.

Hoja1

    A            B          C

Codigo Nombre Apellido

1          Juan       Pepe

2          Jose       Pepe1

3          Toto       Pepe2

Hoja2

A                B

Codigo     Nombre

1               ............

2               .,......... 

3               ..........

4               ...........

Muchas gracias

1 Respuesta

Respuesta
1

No indicas cómo o cuándo se hará la búsqueda. Así que en este ejemplo imaginaré que buscas el código de la celda activa. Lo busca en Hoja1, col A y devuelve los datos en las col siguientes.

Sub copiaDatos()
'x Elsamatilde
'resolver cómo se le indicara a la macro qué dato buscar.
dato = ActiveCell.Value
'busca el dato en hoja 1, col A
Set busco = Sheets("Hoja1").Range("A:A").Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
'si lo encontró lo copia en activa, en la celda sgte, o sea B2
If Not busco Is Nothing Then
    ActiveCell.Offset(0, 1) = busco.Offset(0, 1)
    ActiveCell.Offset(0, 2) = busco.Offset(0, 2)
Else
    Msgbox "No se encontró este código.",,"ERROR"
End If

Si todo quedó comprendido y resuelto no olvides valorar y finalizar la consulta.

Sdos

Elsa

Elsa,

Disculpa, no me hice entender.

Yo debo cargar hoja2 con la información que esta en hoja1; es decir por medio del código (columna A Hoja2) debo buscar el mismo en hoja1 y cargar la información "Nombre" en la hoja2.

Gracias

Saludos

¿Toda la col B de Hoja2?

¿Están en el mismo orden o puede faltar o sobrar en alguna de las 2 col?

Sdos!

Si seria toda la columna B, no están ordenados y puede que falte tanto la columna A o B (Hoja1)

Saludos

Bien, entonces cambiá la macro por esta otra. Estoy considerando que los datos empiezan en fila 2 (ajustá este detalle si fuese necesario).

Sub copiaDatos()
'x Elsamatilde
'trabaja desde la hoja2
Sheets("Hoja2").Select
'recorre la Hoja2 desde fila 2 (ajustar) hasta encontrar celda vacía
Range("A2").Select
While ActiveCell <> ""
    dato = ActiveCell.Value
    'busca el dato en hoja 1, col A
    Set busco = Sheets("Hoja1").Range("A:A").Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
    'si lo encontró,  copia datos asociados en hoja2
    If Not busco Is Nothing Then
        ActiveCell.Offset(0, 1) = busco.Offset(0, 1)  'devuelve en col B lo de la col B de Hoja1
        ActiveCell.Offset(0, 2) = busco.Offset(0, 2)  'devuelve en col C lo de la col C de Hoja1
    End If
'busca el registro siguiente
Wend
MsgBox "Fin de la búsqueda"
End Sub

Hay más ejemplos de cómo comparar y copiar datos en las demos de mis Guías.

Sdos

Elsa

Solo lo hace para para A2 y después queda trancado.

Si no entendí mal creo que recorre toda la hoja2 a partir de A2; si es así debería de recorrer solo la columna A desde A2 (de hoja2) 

Disculpá, faltó pegar una línea. Buscá estas 2 líneas y agregá la que te marco.

'busca el registro siguiente
ActiveCell.Offset(1,0).Select     'AGREGAR
Wend

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas