Macro abra todos los archivos de una carpeta, numero variable

Estoy haciendo una macro en la cual necesito algún tipo de función que me abra todos los archivos que hay dentro un directorio (carpeta) que yo le diga, la carpeta va a ser fija por lo cual la puedo meter por código no hace falta seleccionarla y que me abra todos los archivos que hay dentro de 1 en 1 para obtener un dato, por ejemplo el valor de una celda.

El numero de archivos excel dentro de la carpeta es variable y los nombres también, de ahí mi problema, si los archivos siempre fueran los mismo no tendría problema.

No sé como estructurar esta función. Os estaría eternamente agradecidos si me echáis una mano.

1 Respuesta

Respuesta
1

Te anexo la macro. Entre cada línea puse un comentario explicando el funcionamiento.

Sub Abrir_Todos_Los_Libros()
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    'Estable en l1 este libro, es el que contiene la macro
    Set l1 = ThisWorkbook
    'establece la hoja 1 para poner los datos
    Set h1 = l1.Sheets(1)
    'ruta de archivos
    ruta = "C:\trabajo\archivos\"
    'carga todos los archivos excel en la variable arch
    arch = Dir(ruta & "*.xls*")
    '
    j = 2
    'lee archivo por archivo
    Do While arch <> ""
        'abre el archivo
        Set l2 = Workbooks.Open(ruta & arch)
        'establece en h2 la hoja a utilizar
        Set h2 = l2.Sheets(1)
        'toma el dato de la hoja
        dato = h2.Range("A2").Value
        'pone el dato en el libro de la macro
        h1.Cells(j, "A").Value = dato
        j = j + 1
        'ciera el archivo
        l2.Close False
        'pasa al siguiente archivo
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

.

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

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas