Fórmulas Excel: Ejemplos, Tips y Tutoriales para Dominar Excel

Descubre ejemplos prácticos de fórmulas Excel, tutoriales paso a paso y consejos para optimizar tu trabajo con hojas de cálculo. ¡Aprende a dominar Excel fácilmente!

  • Home
  • Descargas
  • App a Medida
  • Sobre mi
  • Contacto
  • FAQ

Listar Archivos de una Carpeta con Macro Excel

Nolberto Lopez 8 comentarios

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.

Aplicaciones contables en excel

Descargar MegaPack Contable en Excel

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

Categoría: Macros, Videotutoriales

  1. Aplicación a Medida
  2. MegaPack contable en excel
  3. Nómina en excel
  4. Control de CFDI en excel
  5. Control de CFDI de Nomina en excel
  6. Contabilidad electrónica en excel
  7. Sistema contable en excel
  8. Cuentas por cobrar en excel
  9. Pago a proveedores en excel
  10. Ingresos y Egresos en excel
  11. Vacaciones de empleados en excel
  12. Inventarios en excel
  13. Agenda en excel
  14. Conciliación bancaria en excel
  15. Bancos en excel
Aprender Excel Gratis:
  • Facebook
  • Instagram
  • TikTok
  • Twitter
  • WhatsApp
  • Youtube

Acerca de Nolberto Lopez

Experto en Microsoft Excel. Desarrollador de aplicaciones en Excel con VBA. Autor del sitio formulasexcel.com

« MegaPack de Apps Contables en Excel
El secreto para función SI de excel con múltiples condiciones »

Comentarios

  1. gustavo dice

    diciembre 28, 2022 en 9:20 pm

    buenos tardes , muy interesante el aporte , os agradecería si me pudieseis ayudar y es que para yo luego hacer hipervínculos a esos datos necesitaría que me añadiese la ruta entera , que tendría que añadir a la macro ?

    Responder
  2. Alejandro González González dice

    agosto 3, 2021 en 2:31 pm

    Soy ingeniero civil, y me sirven muchas hojas de las que has creado y de tu conocimiento sobre hacer más ágil nuestro trabajo. Agradecido con tu valiosa aportación a los demás.

    Responder
  3. Vicente Cereza dice

    julio 22, 2020 en 12:46 pm

    Buenas Nolbert,

    Bueno lo primero agradecerte toda la información que compartes, ya que es muy útil y me está permitiendo aprender a programar un poquito más.

    He utilizado la macro y funciona perfectamente, pero me gustaría saber si existe alguna forma de adaptarla para que también liste los archivos que existen en las subcarpetas de la carpeta.

    La verdad es que soy bastante primerizo en el tema y no se me ocurre la forma de hacerlo.

    Muchas gracias.

    Un saludo.

    Responder
  4. Rogelio dice

    octubre 24, 2019 en 3:40 pm

    Cual sería la variable para declarar el campo “Duración” de un archivo .mp3

    Responder
  5. Ing. Eduardo Coronel Recalde dice

    agosto 11, 2019 en 2:55 pm

    Me parece muy intereseante esta herramienta

    Responder
  6. Julio dice

    junio 27, 2018 en 6:06 pm

    Buen día Sr. Nolberto

    Primero, quiero agradecerle por su tiempo y a la vez felicitarlo por su sitio, así como la forma tan clara en que explica cada procedimiento.

    No tengo mucha experiencia con macros, analizando y replicando su macro para listar archivos, me funciona bien hasta el momento en que se deben de borrar los archivos para crear la lista nueva, en ese punto me manda el error “1004” en tiempo de ejecución y no se porque.

    Le agradecería mucho si puede instruirme para solucionar este inconveniente.

    Gracias

    Responder
  7. Hernán dice

    febrero 27, 2018 en 5:21 am

    Hola Nolberto.
    Tengo el siguiente código para listado de carpetas, subcarpetas y archivos.
    El tema es que colocando puntos de interrupción, he visto que por cada archivo que lista, el código llega hasta abajo instalando cada vez una fórmula en A1, y realizando autofit de columnas A a E, cuando debería hacerlo al final del listado.
    ¿Qué estaría faltando allí?.
    Desde ya muchas gracias por su tiempo.

    Éste es el código:

    Private Sub CommandButton1_Click()
    ‘ ‘Ruta en CommandButton
    ‘ CommandButton1_Click Macro
    ‘

    ‘
    Ruta = InputBox(“Ingresar Ruta”)
    LIsta_de_archivos (Ruta)
    End Sub
    Sub LIsta_de_archivos(Ruta)
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    Dim Carpeta As String: Carpeta = Ruta
    Sheets(“Listado”).Select
    ActiveSheet.Unprotect Password:=”HGB1968″
    Cells.Select
    Selection.ClearContents
    Range(“A2:E2”) = Array(“Ruta”, “Nombre”, “Tamaño”, “Modificado”, “Tipo”)
    Listar_archivos_en Carpeta, True
    End Sub
    Sub Listar_archivos_en(Carpeta As String, Completo As Boolean)
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    Dim Archivo, SubCarpeta, Fila As Long
    Fila = Range(“A65536”).End(xlUp).Row + 1
    With CreateObject(“scripting.filesystemobject”)
    With .GetFolder(Carpeta)
    For Each Archivo In .Files
    With Archivo
    Range(“a” & Fila & “:e” & Fila) = Array( _
    Application.Substitute(.Path, .Name, “”), .Name, .Size, .DateLastModified, .Type)
    End With
    Fila = Fila + 1
    Next
    If Completo Then
    For Each SubCarpeta In .SubFolders
    Listar_archivos_en SubCarpeta.Path, True
    Next
    End If
    End With
    End With
    ‘a partir de aquí sigue hacia abajo, realizando con cada uno de los archivos éste procedimiento. O sea que sobrepasa el Next hacia abajo cuando debería ir hacia arriba.
    Range(“A1”).Select
    ActiveCell.FormulaR1C1 = _
    “=CONCATENATE(“”ARCHIVOS:””,”” “”,COUNTA(R[2]C:R[1048575]C))”
    Debug.Print ActiveSheet.UsedRange.Address
    Columns(“A:E”).Select
    Selection.ColumnWidth = 100
    Columns(“A:E”).EntireColumn.AutoFit
    Range(“B1”).Select
    End Sub

    Responder
    • Sebastián dice

      julio 7, 2022 en 1:19 am

      Muy buena solo que noy ningún orden a la hora de listar

      Responder

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ponte en contacto conmigo para definir detalles de tu nuevo proyecto.

Contactar
  • INICIO
  • CONTACTO
  • CONTABLES
  • VIDEOS
  • CATEGORIAS
  • VBA EXCEL
  • Política de privacidad

Copyright © 2026 · Formulas Excel · by Nolberto Lopez

Copyright © 2026

Aplicaciones contables en excel

Descargar MegaPack de 14 Apps Contables en Excel


Powered by Joinchat
Hola
¿En qué podemos ayudarte?
Abrir chat