Contar los archivos desde una carpeta VBA

Estoy haciendo una cosilla con VBA en Excel en la que recorro todos los archivos, desde una carpeta determinada, que puede ser cualquiera, incluso la raíz del disco, para buscar los que cumplen una determinada condición, y me pregunta es si hay alguna forma de saber antes de empezar a buscar el numero total de archivos que hay.
He probado con filesystemobject:
Set fso = CreateObject("Scripting.FileSystemObject")
Set Ruta = fso.GetFolder(carpeta)
n = Ruta.Files.Count
Pero sólo cuenta los del primer nivel, no los de todos los subdirectorios que hay debajo.
¿Hay alguna forma de hacer esto?

1 respuesta

Respuesta
1
Esa forma que usas es un poco limitada teniendo en cuenta que estas trabajando en VBA
Fíjate algo de este código a ver si te sirve:
fLdr = "C:\MiCarpeta"
y = msoFileTypeWordDocuments
Set buscarArchivo = Application.FileSearch
With buscarArchivo
        .NewSearch
        .LookIn = fLdr
        .SearchSubFolders = True  'ACA ESTA LO QUE PREGUNTAS SOBRE SUBCARPETAS
        .FileType = y 'msoFileTypeAllFiles o msoFileTypeExcelWorkbooks etc...
'TAMBIEN PODES USAR:
        .Execute(SortBy:=msoSortByFileName, _
            SortOrder:=msoSortOrderAscending)
        .FoundFiles.Count
        .Filename = "*.doc"  'ETC... ETC... ETC...
Hola,
Gracias por la respuesta.
El problema es que el objeto "searchfile" no existe en Excel 2007, parece ser que MS lo ha quitado.
Con "filesystemobject" ya puedo hacer lo que quiero de listar en una hoja excel todos los ficheros que cumplen una condición en el nombre.
Pero quería poner también una barra de progreso y entonces el problema esta en saber el nombre de ficheros totales antes de empezar a buscar, para poder configurar el límite superior de la barra de progreso.
¿Alguna idea para poder saber de antemano el número de ficheros de una ruta?... ¿O de hacer funcionar una barra de progreso sin saberlo?
Gracias y un cordial saludo
Santi
Ok... no tengo experiencia con VBA en Excel 2007 pero fíjate este link a ver si te sirve
http://groups.google.com/group/microsoft.public.es.excel/browse_thread/thread/21fa654dd1cd1d4c

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas