Leer distintos archivos de excel

Necesito leer distintos archivos de Excel y extraer solamente una línea, siempre será la misma línea, tengo una macro que permite extraer la información de todos los archivos que tengo en una carpeta pero me trae toda la información y necesito que sea solamente una línea.

1 Respuesta

Respuesta
1

Puedes poner tu macro para ajustar la parte que copias.

También indica cuál línea quieres copiar.

La saqué de esta misma página. Siempre tiene que ser la línea 5. y mientras se vaya agregando más archivos a la carpeta la información tendría que ir copiándose desde arriba sin borrar lo anterior ni dejar espacios.

Muchísimas gracias.

Sub libros()
'Lee archivos del directorio y Copia la hoja 1
'Por.Dam
Application.ScreenUpdating = False
ruta = ThisWorkbook.Path
ChDir ruta
archi = Dir("*.xls*")
Set h1 = ThisWorkbook.Sheets("hoja1")
h1.Cells.Clear
On Error Resume Next
ffin = h1.UsedRange.Find(what:="*").Row
ActiveCell.SpecialCells(xlLastCell).Select
On Error Resume Next
Do While archi <> ""
If InStr(1, archi, "nuevo") = 0 Then
Workbooks.Open archi
If Err.Number = 0 Then
Sheets(1).Select
Range(Range("A5:G5"), ActiveCell.SpecialCells(xlLastCell)).Copy _
h1.Range("A" & h1.Range("A1").SpecialCells(xlLastCell).Row + 1)
End If
Err.Number = 0
Application.DisplayAlerts = False
Workbooks(archi).Close
Application.DisplayAlerts = True
End If
archi = Dir()
Loop
End Sub

Le hice otros ajustes a la macro

Sub libros()
'Lee archivos del directorio y Copia la hoja 1
'Por.Dam
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    ruta = ThisWorkbook.Path
    ChDir ruta
    archi = Dir("*.xls*")
    Set h1 = ThisWorkbook.Sheets("hoja1")
    h1.Cells.Clear
    On Error Resume Next
    Do While archi <> ""
        If InStr(1, archi, "nuevo") = 0 Then
            Workbooks.Open archi
            Set l2 = ActiveWorkbook
            Set h2 = l2.Sheets(1)
            u1 = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Range("A5:G5").Copy h1.Range("A" & u1)
            l2.Close
        End If
        archi = Dir()
    Loop
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Prueba y me comentas cualquier duda.

.

.

¡Excelente!, solamente una duda, tengo un archivo de por ejemplo más de 800 líneas, en ese caso solamente me pasa que no me trae el valor de la fila 5 si no de la 200. ¿Por qué podrá suceder eso?

Muchísimas gracias.

Y no serán iguales la fila 5 y fila 200

Están ocultas las filas, aunque como copia el rango de la fila 5, no importa que estén ocultas o filtradas, se me hace extraño, podrías poner una imagen de ese archivo, donde se muestren las 6 primeras filas y la fila 200 para qué puede ser.

Encontré el problema, tenía una hoja oculta y en esa hoja tenía otros datos similares y justo el de la línea 200 estaba en la posición 5 de la hoja oculta.

Muchas gracias por toda tu ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas