Consolidar Datos de Varios libros

Soy seguidor tuyo y viendo tus respuestas utilice una de las que das en un ejemplo pero no me funciono, mi duda es como hago para consolidar la informacion de un control diario de asistencia, el cual me llega por separado de cada una de las areas de la empresa este maneja el mismo formato para todo el mundo. Te anexo la imagen.

los datos comienzan a incluirse en la columna A Fila A1 y van hasta la columna AS

Sub ConsolidarDatos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    '
    h1.Cells.ClearContents
    ruta = l1.Path & "C:\11Noviembre"
    arch = Dir(ruta & "*.xls*")
    Do While arch <> ""
        If arch <> l1.Name Then
            Set l2 = Workbooks.Open(ruta & arch)
            For Each h In l2.Sheets
                If h.Index > 1 Then
                    u = h.Range("A" & Rows.Count).End(xlUp).Row
                    f = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
                    If f < 7 Then f = 7
                    h.Range("A7:AS" & u).Copy
                    h1.Range("A" & f).PasteSpecial xlValues
                End If
            Next
            l2.Close False
        End If
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Proceso de consolidación terminado", vbInformation, "CONSOLIDAR DATOS"
End Sub

Tome tu codigo y lo trate de adecuar de acuerdo con lo que lei en la respuesta que das y no me funciona, necesito que al ejecutar la macro se abran todos los libros y se consoliden en uno solo para de alli extraer un reporte diario.

Todos los archivos se encuentran en una misma carperta en una ubicacion en c:\11Noviembre.

1 respuesta

Respuesta
1

H o l a:

En esta línea, te falta una diagonal al final

ruta = l1.Path & "C:\11Noviembre"

Debe ser así:

ruta = l1.Path & "C:\11Noviembre\"

Para revisar lo que quieres hacer, necesito que me digas lo siguiente:

  1. De los otros archivos, ¿de cuál columna a cuál columna hay que copiar?. En la macro veo que es desde la A hasta la AS, ¿es correcto?
  2. ¿A partir de cuál fila?. En la macro veo que es desde la fila 7, ¿es correcto?
  3. También observo que en cada archivo hay varias hojas y que vas a copiar la información de cada hoja a partir de la hoja 2 en adelante, ¿es correcto?
  4. Si todo lo anterior es correcto, qué error te aparece, o qué es lo que está haciendo y qué es lo que debería hacer.

E spero tus comentarios.

sal u dos

Hola Dante

Efectivamente los datos que hay que copiar van de la A a la As y comienzan en la A7 de cada archivo,

El archivo en el cual se debe consolidar la información allí pegue tu macro, todos los archivos tienen los datos en la Hoja1 y estos deben copiarse a la Hoja1 del archivo que denomino como consolidado, al ejecutar la macro me borra todos los encabezados y me genera un error que dice "Nombre o número de archivo incorrecto"

Gracias y saludos.

¿Corregiste lo de la diagonal?

Quita esta línea

H1. Cells. ClearContents

Puedes poner el error completo y en qué línea de la macro se detiene.

Dante, cuando lo ejecuto no me muestra un error sobre el código, si no me despliega un cuadro de dialogo te adjunto una imagen, esta contiene también la ubicación de los archivos en donde estoy con los archivos que se requiere consolidar.

Saludos y gracias

Esta instrucción es incorrecta:

ruta = l1.Path & "C:\11Noviembre"

Tiene que ser así:

ruta = "C:\11Noviembre\"

Revisa que al final pongas la diagonal \


Hola dante,

Realice la corrección, procesa la macro y saca el cuadro de dialogo al final pero no me trae ningún dato.

La macro solamente lee información de la hoja 2 en adelante.

Copia información de la fila 7 en adelante.

No conozco ni tus libros ni tus hojas, no sé que datos tienes.

Podrías poner imágenes de los libros y de las hojas.

O envíame tu archivo concentrador y otro de los archivos que vas a consolidar.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “julio valencia carrillo” y el título de esta pregunta.

Hola dante

Como te comente tengo 6 archivos excel uno por cada área de la compañía, en el cual me reportan una información a diario que tiene que ver con los vehículos que asisten a laborar.

Necesito consolidar la información de estos 6 archivos en un único archivo y de esta manera emitir un informe de acuerdo con las novedades que me reporten, razón por la cual requiero consolidar en un único archivo la información de las 6 areaas pegando en un archivo que llamo consolidado todos los registros y que estos se pegen consecutivos hacia abajo es decir que si el archivo del área Uno contiene información que va hasta la fila A20, necesito que el siguiente lo copie directamente en A21 esto se extiende hasta la columna AS.

Agradezco si me puedes ayudar con este tema ya que es de copiar y pegar todos los días abriendo cada uno de los archivos para consolidarlo en uno solo.

Pero no respondiste esto:

No conozco ni tus libros ni tus hojas, no sé que datos tienes.

Cuando te pregunto qué datos tienes me refiero en dónde están ubicados los datos, en cuál fila y en cuál columna.

Ya entendí que quieres consolidarlos, para eso es la macro, pero la macro fue creada para ciertas características. Esas características no las veo porque no tengo tu archivo y no has puesto una imagen de cómo están tus datos.

Tampoco me has enviado los archivos que te pedí. Si no veo la información no puedo revisarla y por lo tanto no puedo actualizar la macro.

Otra vez:

O envíame tu archivo concentrador y otro de los archivos que vas a consolidar.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “julio valencia carrillo” y el título de esta pregunta.

O envíame tu archivo concentrador y otro de los archivos que vas a consolidar.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “julio valencia carrillo” y el título de esta pregunta.

Gracias ya te envíe el email.

Saludos

Te comenté esto:

La macro solamente lee información de la hoja 2 en adelante.

Tus archivos solamente tienen una hoja, por lo tanto, no copia nada.

Te anexo la macro para consolidar solamente la primera hoja de cada libro

Sub ConsolidarDatos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    h1.Range("A7", [A7].SpecialCells(xlLastCell).Address).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
            f = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            If f < 7 Then f = 7
            h.Range("A7:AS" & 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

sal u dos

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas