Como Ejecutar Macro desde otra Macro
Comencemos con el articulo del Curso Básico de VBA - Como Ejecutar Macro desde otra Macro: En los temas anteriores vimos como crear Formularios, como Ejecutarlas desde Excel.
Y si todavía no has visto el tema anterior, te invito a que lo veas pulsando clic aquí. Una vez termines de leer y aplicar los pasos del tema anterior, regresa nuevamente aquí y continua con el tema de hoy.
Hoy vamos a conocer Como llamar y Ejecutar Macro desde otra Macro.
Pasos para Ejecutar Macro desde otra Macro
Muchas veces nos interesa Ejecutar macro o llamar una Macro desde otra Macro.
Esto es muy útil porque si tenemos un desarrollo muy grande, para mantener ordenado el código conviene dividir la tarea en distintas Macros y luego vamos ejecutando la Macro que se necesite en cada momento.
Para llamar una Macro desde otra Macro simplemente se escribe el nombre de la Macro invocada dentro del código de la Macro principal. Por ejemplo, si ejecutamos la Macro1 y queremos que desde la misma se ejecute la Macro2 lo haríamos así:
Sub Macro1()
'El código de mi Macro1
Macro2
End Sub
Además, si queremos identificar mejor que estamos llamando una Macro desde otra Macro podemos anteponer la palabra Call.
El efecto es el mismo, solo que al anteponer la instrucción Call, la misma queda en azul automáticamente, y nos permite identificar mejor que estamos llamando otra Macro:
Sub Macro1()
'El código de mi Macro1
Call Macro2
End Sub
Macros que realizan varias funciones - Ejecutar macro
Por ejemplo, tenemos una SuperMacro que realiza la siguiente función sobre el rango seleccionado:
- 1Se asigna un Formato Numérico.
- 2De igual forma asigna Bordes.
- 3Asigna color de relleno.
El código de la SuperMacro es el siguiente:
Sub SuperMacro()
'Asigna Formato Numérico
Selection.NumberFormat = "#,##0;[Red]#,##0"
'Asigna Bordes
With Selection.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'Asigna Color de Relleno
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
Simplificando Macros - Ejecutar macro
Esta SuperMacro podríamos simplificarla de tal forma que ejecute 3 MiniMacros:
Sub SuperMacro()
Call FormatoN
Call Bordes
Call Relleno
End Sub
La palabra Call se puede omitir pero recomendamos utilizarla para identificar mejor que estamos llamando otras Macros.
Como se ve en el código, la SuperMacro ejecuta 3 Macros. Estas 3 Macros deben estar ubicadas en el mismo módulo y las escribimos a continuación:
Sub FormatoN()
'Asigna Formato Numérico
Selection.NumberFormat = "#,##0;[Red]#,##0"
End Sub
Sub Bordes()
'Asigna Bordes
With Selection.Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
Sub Relleno()
'Asigna Color de Relleno
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
Muy bien, hasta aquí con el tema de Como llamar Macro desde otra Macro, en el próximo tema vamos a ver sobre "Depuración y Errores".
Si te ha gustado el tema de hoy, te invito a que lo compartas con tus amigos de Facebook pulsando clic en el botón compartir:
Para finalizar, me gustaría saber que piensas de este articulo "Programar en Excel - Ejecutar Macro desde otra Macro".
Por lo tanto:
Déjame tu comentario con dudas, críticas constructivas y sugerencia en la sección de comentarios o bien en el Chat. Al mismo tiempo te invito a que visites nuestra pagina de Facebook, pulsando clic aquí.
Cualquier duda o pregunta, puedes escribirme directamente en la sección de comentarios, en la pagina del chat, directamente en whatsapp o bien al correo electrónico rogerperez@aplicaexcelcontable.com.
Te saluda,
Roger Perez – Aplica Excel Contable
Hola Aingeru!
Puedes encontrar los pasos, en el curso avanzado de Programacion en VBA ( PDF).
Saludos,
Roger Perez – Aplica Excel Contable
si tengo mi macro en otro .xlsm, ¿cómo la llamo o invoco?…, en particular, si la tengo en personal.xlsb…cómo lo hago
Hola Sarah!
Las macros no se encuentran en hojas, estan ubicados en VBA dentro de modulos.
Saludos,
Roger Perez – Aplica Excel Contable
Y si la otra macro está en otra hoja?
buen día, en verdad te felicito por tus pequeños cursos que son de gran ayuda para los que tengamos la necesidad de usar lo que en ellos tratas, en mi caso estoy tratando de hacer a través de excel y publisher un control de elaboración de credenciales en la que se les pueda asignar un numero de control tomando en cuenta para dicho numero las letras del municipio y colonia o ejido donde vive la persona y un numero consecutivo general, y tus cursos me han orientado respecto al formulario de captura de datos, aunque me falta buscar la formula a utilizar para la numeración de las credenciales, de todas formas, muchas gracias por lo que nos compartes.
Muy buena la explicación, muy sencilla y muy útil, venia buscando como hacer esto desde hace rato. Muchas gracias
Muchas gracias, muy util