Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Listar nombres de archivos en excel con macros

| 3 comentarios

Esta macro  permite enumerar los archivos que existen dentro de una carpeta. El programa inicia pidiendo la dirección de la carpeta que se va a leer, una vez ingresada esta carpeta la siguiente parte del programa transforma la dirección ingresada por el usuario en una dirección que la macro pueda entender. Luego de ello se inicia el contador en 1  y la macro, a través de la función "DIR" comienza a leer los archivos dentro de la carpeta. Se genera un Loop que corre hasta que la macro no encuentre más archivos dentro de la carpeta y la va almacenando en celdas que van hacia abajo al ritmo del contador. Finalmente la macro te dice cuantos archivos habían en la carpeta.

Una limitación de este programa es que solamente cuenta archivos, mas no carpetas, es decir, si se tiene una carpeta dentro de otra carpeta, esta no formará parte del conteo.

Esta macro puede ser útil para analistas que tienen que manejar carpetas con un gran número de archivos y sobre los cuales tienen que hacer gestión. Por ejemplo para el proceso de presupuesto comercial de una empresa, se puede utilizar para manejar la carpeta donde se encuentran todos los presupuestos de los productos e identificar en la carpeta cuales son los presupuestos que faltan. Otra función que se le puede dar es el uso para búsqueda de documentos, suele pasar que cuando se maneja gran número de archivos, tienden a mezclarse y luego no se puede identificar si está o no el archivo. El contador permite importar la lista de archivos al Excel para hacer más sencilla la búsqueda.

Listar Archivos con macros

3 comentarios

  1. amigo, como podria hacer para que no se listen tambien los archivos nativos del sistema?, me explico:
    tengo una carpeta con canciones (.mp3), al listarlas con la macro, tambien se listan los archivos del sistema como thumbs.db, la foto de la portada del album al que pertenece la cancion y otros.
    hace un tiempoo escuche de un código que evitaba esto, ojala puedas ayudarme

    • Hola Hausser

      Me parece muy interesante tu pregunta, una forma sencilla de poder hacer algo similar es reemplazando (en el ejemplo del artículo) lo que esta dentro de do loop por lo siguiente:

      If UCase(Right(archivos, 4)) ".TXT" Then
      Cells(contador, 2).Value = archivos
      contador = contador + 1
      End If
      archivos = Dir()

      Saludos

  2. Amigo,

    Me tira error de desbordamiento en el paso:

    contador = contador + 1

    favor tu ayuda

Deja una respuesta

Los campos requeridos estan marcados con *.