Como Buscar en varios libros en una misma carpeta y copiar todas las coincidencias encontradas en un libro nuevo

Tengo 32 archivos, nombrados 01,02 al 32, requiero buscar en todos ellos en la columna E un dato ("minisúper") serán varias de cada libro y copiar las columnas B, C, H, J, O, V, AB, AD, AM, AN. En el libro donde se esta ejecutando.

Me he vuelto loco buscando la solución espero me puedan apoyar

1 respuesta

Respuesta
1

H o l a:

Para realizar la copia de las coincidencias te preparé una macro.

No mencionaste en cuál hoja de los 32 libros hay que buscar, así que la macro busca en la primera hoja.

Tampoco mencionaste en qué columna quieres pegar el resultado, así que si encuentra una coincidencia, lo que está en la columna B lo pone en la columna B, y así para cada columna.

Cambia en la macro la carpeta en donde se encuentran los 32 archivos en esta línea:

ruta = "C:\trabajo\varios\"

Crea una hoja con el nombre de "Hoja2", en esa hoja se pondrán los resultados.

Sub CopiarCoincidencias()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = Sheets("Hoja2")
    ruta = "C:\trabajo\varios\"
    If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
    arch = Dir(ruta & "*.xls*")
    j = h1.Range("B" & Rows.Count).End(xlUp).Row + 1
    Do While arch <> ""
        If arch <> l1.Name Then
            Set l2 = Workbooks.Open(ruta & arch)
            Set h2 = l2.Sheets(1)
            Set r = h2.Columns("E")
            Set b = r.Find("minisúper", lookat:=xlPart)
            If Not b Is Nothing Then
                ncell = b.Address
                Do
                    'detalle
                    h1.Cells(j, "B") = h2.Cells(b.Row, "B")
                    h1.Cells(j, "C") = h2.Cells(b.Row, "C")
                    h1.Cells(j, "H") = h2.Cells(b.Row, "H")
                    h1.Cells(j, "J") = h2.Cells(b.Row, "J")
                    h1.Cells(j, "O") = h2.Cells(b.Row, "O")
                    h1.Cells(j, "V") = h2.Cells(b.Row, "V")
                    h1.Cells(j, "AB") = h2.Cells(b.Row, "AB")
                    h1.Cells(j, "AD") = h2.Cells(b.Row, "AD")
                    h1.Cells(j, "AM") = h2.Cells(b.Row, "AM")
                    h1.Cells(j, "AN") = h2.Cells(b.Row, "AN")
                    j = j + 1
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> ncell
            End If
            l2.Close
        End If
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Coincidencias copiadas", vbMsgBox, "TERMINADO"
End Sub

Sigue las Instrucciones para un botón 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: CopiarCoincidencias
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas