Hay muchas maneras diferentes de ejecutar un macro. La manera más normal de ejecutarlo es desde la barra de herramientas, sin embargo, existen otras muchas posibilidades para ejecutar una macro que nos pueden ser de gran utilidad en determinados casos. A continuación explicamos algunas de estas posibilidades.
1 – Ejecutar una macro desde la barra de herramientas
Para ejecutar una macro desde la barra de marcadores debes ir a:
Pestaña Vista >> Grupo Macros >> Botón Macros
También se puede ejecutar desde la pestaña Programador (si no la tienes activada te explicamos cómo hacerlo aquí).
Pestaña Programador >> Grupo Código >> Botón Macros
2 – Ejecutar un macro desde el Editor de Visual Basic (VBE)
Para ello lo primero que tienes que hacer es abrir el Editor de Visual Basic (VBE) desde la pestaña Programador o simplemente pulsando Alt + F11
Una vez abierto VBE puedes ejecutar la macro seleccionada pulsando F5 o dándole al botón de Play (►) en la barra de herramientas.
3 – Ejecutar una macro con un acceso rápido (Ctrl + Tecla)
Para asignar un acceso rápido a un macro lo primero que tienes que hacer es abrir la ventana de diálogo de macros (en la pestaña Vista o Programador). Una vez abierta esta ventana selecciona la macro a la que quieras asignar un acceso rápido y a continuación pulsa el botón Opciones. En la nueva ventana que se abre escribe la letra que quieres que ejecute la macro (no todas valen, como es lógico, ya hay muchas que están cogidas como por ejemplo el popular Ctrl + C) y pulsa Aceptar.
4 – Ejecutar una macro desde otra macro
Una macro se puede ejecutar desde otra macro utilizando la instrucción Call. Por ejemplo como podemos ver en el siguiente procedimiento.
Sub macro1() Call macro2 End Sub Sub macro2() MsgBox ("Has ejectuado el macro1") End Sub
En esta macro que acabamos de ver, la Macro1 llama a la Macro2 mediante la instrucción call. Es decir, al ejecutar la macro1 esta irá directamente a ejecutar la macro2 cuando llegue a la instrucción Call.
5 – Ejecutar una macro cuando cambie el valor de una celda
Cambiar el valor de una celda en VBA se considera un evento. ¿Sabes lo que son los eventos?. Si quieres aprender más de este tema puedes leer el artículo: ¿Qué son los eventos en VBA? Hay diferentes tipos de eventos, como pueden ser guardar el documento, abrirlo, añadir una hoja etc. Todos estos eventos ya vienen predefinidos en VBA. El ejemplo a continuación explica el evento Change o cambio de valor de una celda. El procedimiento sería similar para el resto de eventos:
Los pasos a seguir son los siguientes:
- Abrir VBE (Alt + F11)
- Para el cambio de valor de una celda tenemos que escribir el código en la hoja en la que se encuentra esa celda.
- En la esquina superior izquierda del editor de código seleccionamos la opción Worksheet
- En la parte superior derecha seleccionamos el evento que queremos que ejecute la macro, en nuestro caso es un cambio de valor en una celda o Change:
- Una vez seleccionado el evento, VBE escribe automaticamente la iniciación del macro:
Private Sub Worksheet_Change(ByVal Target As Range) 'mi código End Sub
- A continuación lo único que tenemos que hacer es definir el target (celda que al cambiar ejecute el macro) y escribir el código que queremos que ejectue cuando ese valor cambie:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = “$A$1” Then MsgBox (“Has cambiado el valor de la celda “ & Target.Address) End If End Sub
A partir de ahora cada vez que cambiemos el valor de la celda A1 nos aparecerá el siguiente mensaje en pantalla:
Nota: El evento change se refiere al cambio de valor de una celda. Cuando la celda contiene una formula y lo que cambia es el resultado de la formula la macro NO se ejecutará ya que el contenido de la celda (en este caso una fórmula) sigue siendo la misma. Para este caso el evento que queremos generar es el evento Calculate.
Bonus Track
Todo esto está muy bien pero estoy seguro de que quieres ver un ejemplo en concreto.
[sociallocker]
[/sociallocker]