Ícono del sitio Formulas Excel

Listar Archivos de una Carpeta con Macro Excel

Síguenos y dale Like:
20k
7400
1k

En este ejercicio veremos un ejemplo para listar archivos de una carpeta con macro excel ( algo similar se ha usado en la App CFDIControlFX ), esta lista sera creada en una hoja del libro, ademas sera posible indicar el tipo de archivo que queremos filtrar.

Las macros son una poderosa herramienta para potenciar aun mas el trabajo con excel, el manejo de archivos no podía quedar fuera, vba contempla funciones que ayudan en la creación de procedimientos para interactuar con archivos, ya sea para abrirlos, escribir en ellos o simplemente obtener sus nombres.

Seleccionar Carpeta

Para generar la lista de archivos es necesario seleccionar una carpeta de la que deseamos obtener dichos archivos, para ello es necesario crear una función que genere la ventana para hacer la selección.

Function MiRuta()
    Dim directorio As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Seleccionar Carpeta"
        .Show
        directorio = .SelectedItems(1)
    End With

    If directorio <> "" Then
        MiRuta = directorio
    End If
End Function

Cuando esa función sea llamada desde algún procedimiento, se abre una ventana del explorador de Windows, podrás moverte entre las carpetas y seleccionar la que desees.

Obtener nombres de archivos de la carpeta seleccionada

Ahora que se ha seleccionado una carpeta, es necesario obtener la lista de archivos que contiene, de tal modo que se puedan poner esos nombres en una de las hojas.

Sub ListArchivos()
    Dim ruta, archivos As String
    Dim i As Integer

    'obtener ruta
    ruta = MiRuta

    archivos = Dir(ruta & "\*.xml*")

    wsArchivos.Range("A2:A" & wsArchivos.Cells(Rows.Count, 1).End(xlUp).Row) = ""

    i = 2
    Do While Len(archivos) > 0
        wsArchivos.Cells(i, 1) = archivos
        archivos = Dir()
        i = i + 1
        Loop
End Sub

Esta macro llama a la función que se creo primero para abrir una ventana del explorador de windows y seleccionar la carpeta, luego mediante un loop se recorren los nombres de archivo y se ingresan en una hoja.

Filtrar por tipo de archivo

Una buena característica de esta macro es que puedes filtrar por tipo de archivo, es decir, generar la lista solo con los archivos de un tipo especifico.

Para esto solo debes editar la siguiente linea

archivos = Dir(ruta & "\*.xml*")

Simplemente deberás cambiar el dato que esta entre * * por la extensión del tipo de archivos que deseas obtener.

Que aplicaciones tiene esta macro

Como se ha observado, listar Archivos de una carpeta con macro excel resulta muy útil, de entrada la aplicación mas simple es la generación de la lista de archivos, pero igual puedes usarla en muchos otros proyectos donde es necesario trabajar con otros archivos, esto evidentemente dependerá directamente de tu proyecto, de momento ahora tienes este ejemplo y en su caso podría ser de ayuda en alguno de tus casos de trabajo.

Listar Archivos con Macros

Síguenos y dale Like:
20k
7400
1k
Salir de la versión móvil