Buscar valores en dos libros distintos

Tengo un libro llamado PLU charcutería con 1 sola hoja y otro llamado MANUEL, me interesa buscar los códigos que aparece en el libro PLU en la columna B lo busque en todas las hojas del libro MANUEL en la columna C y me diga en que ubicación lo encontró (hoja y fila) la ubicación me la ponga en el libro PLU en la columna S

Los códigos en el libro MANUEL pueden repetirse en varias hojas, si aparece más de uno que me muestre las distintas ubicaciones.

Si alguno puede ayudarme lo agradecería.

1 Respuesta

Respuesta
1

H o l a:

Te anexo una macro.

Sigue las Instrucciones para poner un botón en tu hoja del libro PLU y ejecutar la macro:

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: BuscarValores
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Antes de ejecutar la macro deberás tener abierto tu libro "MANUEL.xlsx"


Sub BuscarValores()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets(1)
    Set l2 = Workbooks("MANUEL.xlsx")
    h1.Columns("S").ClearContents
    '
    For i = 1 To h1.Range("B" & Rows.Count).End(xlUp).Row
        For Each h In l2.Sheets
            Set r = h.Columns("C")
            Set b = r.Find(h1.Cells(i, "B"), lookat:=xlWhole)
            If Not b Is Nothing Then
                ncell = b.Address
                Do
                    cad = cad & "Hoja:" & h.Name & "/Fila:" & b.Row & ", "
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> ncell
                h1.Cells(i, "S") = Left(cad, Len(cad) - 2)
            End If
        Next
    Next
    MsgBox "Fin"
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas