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.
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