Excel.Macros.Ejercicios. Procesar los ficheros de un directorio

Hay veces que necesitamos saber que ficheros se encuentran en un directorio, por ejemplo para fusionarlos, para realizar procesos específicos de ficheros,…

Os presento una macro que recorre un directorio, y muestra todos los ficheros que contiene; a partir de ahi, podeis decidir que hacer con los mismos; en esta macro, se limita a enviarlos a una rutina que los va presentando en la hoja.

Las lineas clave son:

myfile = Dir(CurDir() & sep & "*.xls")

La función que nos facilita esta funcionalidad, es Dir() a la que le pasamos la ruta de la carpeta que deseamos recorrer, y la mascara para el tipo de fichero que deseamos visualizar.

En nuestro caso, le indicamos CurDir() que es otra función que nos facilitara el path en donde nos encontremos, mas *.xls para indicarle que deseamos todos los ficheros que posean esa extensión. Otros ejemplos de path validos serian:

C :\documentos\*.txt

D :\importacion\*.csv

Al ejecutar la sentencia indicada, a myfile llega el primer fichero que cumple con la condición, con el podemos entrar en un bucle Do while hasta que nos vuelva con un blanco, cosa que pasara cuando se acaben los fichero ; y para obtener el siguiente nombre, utilizamos otra vez la función Dir(), pero sin parámetros

Sub directorio()
    Dim myfile As String
    Dim sep As String
    sep = "\"
    myfile = Dir(CurDir() & sep & "*.xls")

   ' inicia un bucle hasta que se acaben los ficheros filtrados

   Cells(1, 1).Select
   Do While myfile <> ""
      procesa myfile
      myfile = Dir()
   Loop

End Sub
Sub procesa(fichero As String)
    ActiveCell.Value = fichero
    ActiveCell.Offset(1, 0).Select
End Sub

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Excel, Formacion y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario