Consolidar varios archivos de excel en uno solo

Alguno me podría ayudar con una macro que me consolide varios archivos de excel en una sola hoja.

Nota: 1.los archivos están en un mismo directorio (carpeta) 2. Los archivos a consolidar solo contienen una sola hoja, tienen la misma estructura (mismo numero de columnas) 3. El numero de archivos a consolidar puede variar 4. Los archivos tienen nombres diferentes

La idea es que yo pueda seleccionar estos archivos y me los consolide en una sola hoja diferente, teniendo en cuenta las notas anteriores y que la hoja consolidada solo tenga un encabezado.

1 Respuesta

Respuesta
1

Sigue las siguientes instrucciones

  • En el archivo de consolidación, crea una hoja llamada "Hoja1"
  • En esa hoja1, en la fila 1, pones tus encabezados
  • En ese archivo en un módulo copia la macro
  • Guarda el archivo de consolidación en una carpeta
  • Pon los archivos a consolidar en la misma carpeta donde guardaste el archivo de consolidación.
  • No importa el número de archivos o el nombre de los archivos, siempre y cuando estén en la misma carpeta del archivo de consolidación.
  • La macro revisará la columna "A" de cada archivo para determinar el número de filas a copiar, es importante que me digas si la columna A siempre tiene datos. Si no es la columna A la que siempre tiene datos, entonces cambia en estas líneas de la macro la letra "A" por la letra de la columna que siempre tenga datos.
                u = h.Range("A" & Rows. Count).End(xlUp). Row
                If u < 2 Then u = 2
                f = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
  • Ejecuta la macro


Sub ConsolidarDatos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    h1.Rows("2:" & Rows.Count).ClearContents
    '
    ruta = l1.Path & "\"
    arch = Dir(ruta & "*.xls*")
    Do While arch <> ""
        If arch <> l1.Name Then
            Set l2 = Workbooks.Open(ruta & arch)
            Set h = l2.Sheets(1)
            u = h.Range("A" & Rows.Count).End(xlUp).Row
            If u < 2 Then u = 2
            f = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            h.Rows("2:" & u).Copy
            h1.Range("A" & f).PasteSpecial xlValues
            l2.Close False
        End If
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Proceso de consolidación terminado", vbInformation, "CONSOLIDAR DATOS"
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: ConsolidarDatos
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas