Seleccionar varios archivos Excel,copiar y pegar algunos datos en otro excel

Para Dante amor.

Necesito seleccionar varios archivos. De esos archivos coger las columnas "e", "f","g", copiar todo lo que contiene y pegar en otro archivo "x", pero de manera continua, es decir;

-El primer archivo me va a ocupar en el archivo "X" desde a1 hasta a"y"(siendo y la última celda con datos).

-El segundo archivo iría desde ay+1 hasta a"y" y así sucesivamente.

Hay que tener en cuenta de que, solo la primera vez me copiaría desde e1 hasta g"y", el segundo y el resto de archivos debe copiar desde e2 hasta G"y"

1 respuesta

Respuesta
1

H o la : Te anexo la macro.

En el libro donde ejecutes la macro, crea una hoja llamda "HojaX", en esa hoja se almacenará el resultado.

Ejecuta la macro, cuando se abra el explorador de archivos, podrás seleccionar uno o varios archivos, después presiona Aceptar para extraer la información.

Sub Extraer_Datos_De_Varios_Archivos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("HojaX")     'hoja destino
    h1.Cells.Clear
    '
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Selecciona los archivos de excel"
        .Filters.Add "Archivos de excel", "*.xls*"
        .AllowMultiSelect = True
        .InitialFileName = l1.Path & "\"
        If Not .Show Then Exit Sub
        For Each arch In .SelectedItems
            Set l2 = Workbooks.Open(arch)
            u = l2.ActiveSheet.UsedRange.Rows(l2.ActiveSheet.UsedRange.Rows.Count).Row
            l2.ActiveSheet.Range("E1:G" & u).Copy
            u = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row + 1
            h1.Range("A" & u).PasteSpecial xlValues
            l2.Close False
        Next
    End With
    h1.Rows(1).Delete
    Application.ScreenUpdating = True
    MsgBox "Extracción terminada"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

gracias por contestar rápido Dante.

El problema es que pierden el formato los datos.

El titulo de las columnas a copiar aparece cada vez que pega datos. Sólo debe aparecer cuando pega los datos del primer libro,el resto de archivos no debe copiar los títulos de las columnas. te pongo una captura de pantalla para que veas como se repiten los titulos "fecha de visita,hora de visita"....y como pierden los formatos. 

los datos tienen el siguiente formato:

Saludos;)

Cambia en la macro esta línea:

 H1.Range("A" & u). PasteSpecial xlValues

por esta

            h1.Range("A" & u).PasteSpecial xlAll

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas