Macro con buscarv y que lo copie en columna diferente

Necesito una macro nose si será posible.
tengo esta línea: =BUSCARV(hoja1!A:A;hoja2!B:H;2;FALSO)
Busco de la hoja1 toda la columna A y de la hoja2 desde la columna B a la H y después pondría;2;falso.

Después que el resultado de dicha búsqueda me la copie en la columna B de la hoja1

1 respuesta

Respuesta
2

Con un bucle que recorra la col A de Hoja1 podrás ir buscando en Hoja2 y devolver el valor en B. Sería como esto:

Sub macroBusca()
'x Elsamatilde
'recorre la col A de hoja1... hoja activa
Sheets("Hoja1").Select
fini = Range("A" & Rows.Count).End(xlUp).Row
'tomo el rango desde fila 2 hasta la última con datos (fini) ....AJUSTAR
For i = 2 To fini
    dato = Range("A" & i)
    Set busco = Sheets("Hoja2").Range("B:H").Find(dato, LookIn:=xlValues, lookat:=xlWhole)
    'si lo encuentra vuelca el resultado en col B de hoja 1
    If Not busco Is Nothing Then
        Range("B" & i) = busco.Offset(0, 1)   'devuelve lo de la col C...AJUSTAR
    Else
        'opcional: dejar limpia la col B
        Range("B" & i) = ""
    End If
'sigue con la otra fila
Next i
MsgBox "Fin de la búsqueda"
End Sub

 Dejo el código explicado para que puedas ajustar algunos detalles. Se entiende que debes devolver el contenido de la col C ....por eso 'Offset(0,1) ....si no es así ajusta esta línea.

¡Gracias! por la ayuda. Con esta línea se me bloquea el excel For i = 2 To Fini, la cambie por

For i = 2 To 8 y en un par de celdas sale bien el resultado pero en las demás salen mal.

Nose que esta mal

Si la macro corre bien (aunque sea para algunas celdas) el problema está en las hojas... tendrás que enviármelas (podés copiarlas en otro libro vacío si el libro es muy extenso pero revisa antes si las 2 hojas en cuestión tienen macros allí, como en esta imagen)

Los correos aparecen en mi sitio que dejo al pie (o dejame un correo tuyo y te escribo)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas