Dispongo de una macro en el libro personal y quiero ejecutarla en todos los ficheros que contiene un directorio. Normalmente entre 20/30 ficheros después de exportar los datos desde access creando ficheros excel
La instrucción para ejecutar una macro que se encuentra en el libro Personal es esta, ajustando el nombre de la rutina: Application.Run "Personal.xls!Macro2" Podés colocarla en el evento Open de cada libro O si la tendrás en un libro 'principal' necesitarás la macro que sigue, que recorrerá todos los libros de esa carpeta. Sub ListarArchivosCarpeta() Dim strArchivos As String Dim strNombreCarpeta As String 'carpeta donde se hará la búsqueda 'strNombreCarpeta = "C:\Documents and Settings\All Users\Documentos\" 'o también se puede hacer la búsqueda en la carpeta donde se encuentra este libro strNombreCarpeta = ThisWorkbook.Path 'pasamos al directorio elegido, indicando como tipo de archivo Excel ChDir strNombreCarpeta strArchivos = Dir("*.xls") 'recorremos los archivos de la carpeta Do While strArchivos <> "" 'podemos mostar el nombre de cada archivo encontrado Workbooks.Open strArchivos Application.Run "Personal.xls!macroFecha" 'cierra guardando los cambios ActiveWorkbook.Close True 'obtiene la siguiente entrada strArchivos = Dir Loop End Sub Saludos y no dejes de finalizar Elsa **Macro extraída del manual '400Macros' No te lo pierdas! http://es.geocities.com/lacibelesdepunilla/manuales_aplicaciones
Fíjate que al final de la instrucción strNombreCarpeta = ... te falta la barra... Otra cosita: agregaste C antes del asterisco en Dir... supongo que querés con esto solo los libros cuyo nombre empiezan con C, ¿verdad? Pruébalo nuevamente y comentame si ahora ya lográs obtener los resultados esperados.