Iniciar macro cuando se cumpla una condición en una tabla de Excel

Tabla de contenido

Puede usar un truco para iniciar una macro tan pronto como una función SI en su hoja de cálculo de Excel arroje un resultado determinado

Una macro debe ejecutarse en una tabla de Excel tan pronto como una función de tabla IF devuelva un valor lógico. De lo contrario, simplemente debería mostrarse un texto.

Resuelve este problema con una función VBA definida por el usuario. Está trabajando con un procedimiento de función en lugar de un procedimiento secundario.

Si ya hay una macro que desea iniciar con una función SI, puede copiar el código en el procedimiento Función o llamar al procedimiento Sub desde allí.

Una macro con el nombre "Startmacro" se utiliza como ejemplo y solo abre un cuadro de diálogo simple. Sigue estos pasos:

  1. Primero inicie el editor de VBA. Puede hacer esto en todas las versiones de Excel usando la combinación de teclas ALT F11.
  2. Seleccione el comando INSERTAR - MÓDULO para insertar una nueva hoja de módulo.

Ingrese los siguientes comandos de VBA:

Función pública Startmakro () como cadena
Anuncio de llamada
Iniciar macro = "Iniciado".
Función de fin
Pantalla secundaria ()
MsgBox "Macro iniciada"
End Sub

El código del programa consta de dos partes separadas. El primer fragmento representa la nueva función de tabla STARTMAKRO. El segundo fragmento se utiliza para mostrar el texto "La macro ha comenzado".

Después de ingresar los comandos, llame al comando CLOSE AND RETURN TO MICROSOFT EXCEL en el menú ARCHIVO en el editor de VBA. Esto te trae de vuelta a tu mesa.

Cómo incluir la macro en una función SI

Para ver si la macro funciona correctamente, ingrese la siguiente función en la celda A2 de una tabla:

= SI (A1 = 1; startmakro (); "No iniciado")

Si ingresa el número 1 en la celda A1, la función definida por el usuario llamará a la macro. La ventana de mensaje aparece como se muestra en la siguiente figura:

Luego está el texto "Comenzó". En la celda. La función de hoja de cálculo definida por el usuario devolvió este resultado a Excel.

Si la celda A1 tiene un contenido distinto de 1, la macro no se inicia. En este caso, la función SI establece el texto "No iniciado". como resultado

La ruta presentada es una práctica que Microsoft no recomienda. Las ventanas de mensajes no deben mostrarse dentro de las funciones definidas por el usuario.

No es necesario separar las dos macros START MACRO y DISPLAY. También puede prescindir del comando CALL en la macro VBA e incluir los comandos para la subrutina directamente en la subrutina FUNCTION.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave