5 maneras de ejecutar un macro en Excel

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

ejecutar macro excel

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]

(Visited 126.046 times, 1 visits today)
Categorías VBA

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies