Macro unificar Excel de forma correlativa

Tengo al siguiente Macro, y tiene varios problemillas

1) Solo me funciona la primera vez que la uso, en siguientes ejecuciones se queda en blanco

2) No me trae la información correctamente, se deja atrás datos. ¿Puede qué no interprete bien los formatos?

3)Me gustaría que la pestaña "vehículos" fuera una variable que pudiese filtrar

Adjunto la macro:

Sub copia_hojas()
'Por.DAM
On Error Resume Next
hoja = "vehículos"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
Set l1 = ThisWorkbook
Set h1 = l1.Sheets(1)
'
ChDir ThisWorkbook.Path
archi = Dir("*.xls*")
'
Do While archi <> "" And archi <> l1.Name
Workbooks.Open archi
uf = h1.Range("A1").SpecialCells(xlLastCell).Row + 1
Sheets(hoja).Range("A2:z30000").Copy h1.Cells(uf, "A")
Workbooks(archi).Close
archi = Dir()
Loop
'
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Proceso de copiar hojas, Terminado", vbInformation
End Sub

2 respuestas

Respuesta
1

Puedo adaptar la macro a lo que necesitas. Puedes poner ejemplos de lo que tienes y del resultado que esperas.

Utiliza imágenes para apoyar tus ejemplos

¡Gracias! 

Sería algo así, quiero unir (de forma agrgada) los dato de la pestaña vehículos  (u otra) en un nuevo libro. todos los libros excel que tienen la información estan a la misma carpeta

¡Gracias! 

Sería algo así, quiero unir (de forma agrgada) los dato de la pestaña vehículos  (u otra) en un nuevo libro. todos los libros excel que tienen la información estan a la misma carpeta

Te anexo la macro actualizada

Sub copia_hojas()
'Por.DAM
    hoja = "vehiculos"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    existe = False
    Set l1 = ThisWorkbook
    For Each h In l1.Sheets
        If LCase(h.Name) = LCase(hoja) Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "La hoja : " & hoja & " no existe"
        Exit Sub
    End If
    Set h1 = l1.Sheets(hoja)
    '
    ChDir ThisWorkbook.Path
    archi = Dir("*.xls*")
    '
    Do While archi <> "" And archi <> l1.Name
        Set l2 = Workbooks.Open(archi)
        existe = False
        For Each h In l2.Sheets
            If LCase(h.Name) = LCase(hoja) Then
                Set h2 = h
                existe = True
                Exit For
            End If
        Next
        If existe Then
            u1 = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
            h2.Range("A2:Z" & u2).Copy h1.Cells(u1, "A")
        End If
        l2.Close False
        archi = Dir()
    Loop
    '
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    MsgBox "Proceso de copiar hojas, Terminado", vbInformation
End Sub

Prueba con la hoja vehiculos y me comentas. Después de que funcione me explicas esta parte:

3)Me gustaría que la pestaña "vehículos" fuera una variable que pudiese filtrar

Estimado Dante, lo primero muchas gracias por tu paciencia

lo que he hecho es:

1) he creado un libro , llamado "nuevo" en esa carpeta

2) He creado un modulo y he añadido tu macro

3) He cambiado vehiculo por Vehículo

4) En el libro "nuevo" he creado una pestaña que se llama vehículo

el resultado es que trae la información  GRACIAS. necesitaría corroborar que me he traído todo

tendría algún contador para verificar que traigo la totalidad de lineas?

Lo que me gustaría ahora si es posible es:

Cuando ejecute la macro que me de la opción de elegir la pestaña

Vehículos, carretillas, activos,....etc

sería posible? 

Estimado Dante, lo primero muchas gracias por tu paciencia

lo que he hecho es:

1) he creado un libro , llamado "nuevo" en esa carpeta

2) He creado un modulo y he añadido tu macro

3) He cambiado vehiculo por Vehículo

4) En el libro "nuevo" he creado una pestaña que se llama vehículo

el resultado es que trae la información  GRACIAS. necesitaría corroborar que me he traído todo

tendría algún contador para verificar que traigo la totalidad de lineas?

Lo que me gustaría ahora si es posible es:

Cuando ejecute la macro que me de la opción de elegir la pestaña

Vehículos, carretillas, activos,....etc

sería posible? 

Por otra parte, solo me trae información de las dos primeros libros excel.

Puede ser que tenga algún problema de formatos de nombre los libros?

La macro abre todos los libros que están en la misma carpeta del archivo que contiene la macro, revisa cada libro para ver si tiene la hoja "vehiculos", si no tiene la hoja no copia nada.

¡Gracias!, me ha faltado el filtro en la macro, para poder elegir la pestaña ( no solo vehículos)

Pero se agradece igualmente

Respuesta
-1

Estos links te pueden aportar algo

http://programarexcel.com

https://youtube.com/programarexcel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas