Expert@s! Quisiera realizar una macro que vaya abriendo distintos ficheros excel contenidos en distintos subdirectorios, para extraer diferente información... Tendría que recorrer todos los subdirectorios... E ir abriendo todos los ficheros excel que vaya encontrando.
Se puede hacer pero tienes que dar los nombres de las carpetas porque si recorres toda la lista pues abriría todos los libros de excel que encuentre Cordialmente, cmera
Eso es lo que quiero... Que abra todos los libros excel que encuentre dentro de todos los subdirectorios de una carpeta... Creo que es algo con el comando "dir", pero la verdad que no se usarlo... Saludos.
Ahí va, ten cuidado pues si hay libros muy pesados se puede bloquear el equipo. Otra cosa, si hay libros vinculados va a preguntar pero me parece mejor por seguridad. Sub LasCarpetas() 'Macro Grabada el 14/09/2004 por Cesar Mera 'Busca en una Carpeta del sistema y sus subcarpetas todos los archivos de Excel y los abre Dim NombreCarpeta As String NombreCarpeta = "C:Documents and SettingsMis documentosPENDIENTES" 'Colocar la carpeta inicial Call ShowFolderList(NombreCarpeta) End Sub Sub ShowFolderList(LaCarpeta As String) Dim NombreSubCarpeta As String Set FileSys = CreateObject("Scripting.FileSystemObject") Set Folder = FileSys.GetFolder(LaCarpeta) ' Asigna la carpeta a la variable Folder Set ListaCarpetas = Folder.Subfolders ' Asigna la lista de Subcarpetas a la variable ListaCarpetas Set ListadoArchivos = Folder.Files ' Asigna la lista de Archivos a la variable ListadoArchivos For Each Archivo In ListadoArchivos If InStr(1, Archivo.Name, ".xls", vbTextCompare) Then Workbooks.Open (Folder & "/" & Archivo.Name) End If Next Archivo For Each Subcarpeta In ListaCarpetas NombreSubCarpeta = Folder.Path & "" & Subcarpeta.Name Call ShowFolderList(NombreSubCarpeta) 'Procedimiento recursivo, se llama a si mismo para hacer Next Subcarpeta 'la verificación en las subcarpetas End Sub La única modificación que debes hacer es colocar en la variable "NombreCarpeta" la ruta exacta que contiene los archivos y las subcarpetas con los archivos que deseas abrir. Si no entiendes algo por favor me avisas para explicarte de lo contrario favor valorar la respuesta de acuerdo a su calidad, utilidad y oportunidad. Cordialmente, cmera
2 comentarios
Buenas tardes cmera,La macro me resulta interesante, pero me da un error al ejecutarla.Error 76 en la siguiente linea y no abre ningún archivo.Set Folder = FileSys.GetFolder(LaCarpeta) ' Asigna la carpeta a la variable FolderMuchas gracias de antemano.Saludos. - pedro garcia
Hola, me da el mismo error 76 que le da a Pedro Garcia - Nikko Medici
Buenas tardes cmera,La macro me resulta interesante, pero me da un error al ejecutarla.Error 76 en la siguiente linea y no abre ningún archivo.Set Folder = FileSys.GetFolder(LaCarpeta) ' Asigna la carpeta a la variable FolderMuchas gracias de antemano.Saludos. - pedro garcia
Hola, me da el mismo error 76 que le da a Pedro Garcia - Nikko Medici