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