
Macros en otro archivo de Excel
Probablemente hayas pasado por esta situación en algunos de tus procesos manejando macros en VBA con Excel: necesitas ejecutar una macro, pero esta macro está en otro archivo, y en realidad no quieres pasar el código al archivo donde lo estás ejecutando. Las razones pueden ser múltiples y todas ellas válidas. A mi me pasó y seguí estos pasos para ejecutar una macro que reside en otro archivo.
- El archivo donde tienes las macros se queda sin cambios. Aquí te propongo este ejemplo que puedes descargar: archivo_con_macros
- El archivo desde donde lanzas la ejecución debe llevar este código:
- Aquí te propongo también este ejemplo que puedes descargar ( ejecutar_desde_otro_archivo ). Solo ve al código en VBA (desde el tab developer, Alt+F11, cualquier método que prefieras).
Para que puedas entender lo que ocurre con este código:
- Esta parte del código te mostrará una ventana que te ayuda a localizar el archivo donde tienes las macros:
‘Localizar archivo en el sistema de archivos
nombreDelArchivoConMacros = Application.GetOpenFilename(“Excel Files (*.xlsm), *.xlsm”)
- El archivo donde residen las macros debe estar abierto. Por eso una vez localizado el arhivo, debes abrirlo y avisarle a VBA que esta será tu instancia activa:
‘Abrir archivo
Workbooks.Open nombreDelArchivoConMacros
‘Determinar archivo de origen como libro activo
Set archivoConMacros = ActiveWorkbook
- Una vez abierto, puedes seguir con la ejecución:
‘Ejecutar macro del otro archivo (macro: abrirBlog)
Application.Run “‘archivo_con_macros.xlsm’!abrirBlog”
- Y para finalizar, VBA se encarga de cerrar el archivo:
‘Cerrar archivo
archivoConMacros.Close Savechanges:=False
En el blog tenemos muchos ejemplos de Excel, consúltalos en este link: https://www.fditf.com/bi/category/excel/