Avvia macro quando viene soddisfatta una condizione in una tabella di Excel

Sommario

Puoi usare un trucco per avviare una macro non appena una funzione SE nel tuo foglio di calcolo Excel fornisce un determinato risultato

Una macro deve essere eseguita in una tabella Excel non appena una funzione di tabella SE restituisce un valore logico. Altrimenti dovrebbe essere semplicemente visualizzato un testo.

Risolvi questo problema con una funzione VBA definita dall'utente. Stai lavorando con una routine Function invece che una routine Sub.

Se è già presente una macro che si desidera avviare con una funzione SE, è possibile copiare il codice nella routine Function o chiamare la routine Sub da essa.

Una macro con il nome "Startmacro" viene utilizzata come esempio e richiama solo una semplice finestra di dialogo. Segui questi passi:

  1. Per prima cosa avvia l'editor VBA. Puoi farlo in tutte le versioni di Excel usando la combinazione di tasti ALT F11.
  2. Selezionare il comando INSERISCI - MODULO per inserire un nuovo foglio modulo.

Immettere i seguenti comandi VBA:

Funzione pubblica Startmakro () As String
Chiama annuncio
Avvia macro = "Avviato".
Fine funzione
Display secondario ()
MsgBox "Macro avviata"
Fine sottotitolo

Il codice del programma è composto da due parti separate. Il primo frammento rappresenta la nuova funzione di tabella STARTMAKRO. Il secondo frammento viene utilizzato per visualizzare il testo "La macro è iniziata".

Dopo aver immesso i comandi, richiamare il comando CHIUDI E TORNA A MICROSOFT EXCEL nel menu FILE nell'editor VBA. Questo ti riporta al tuo tavolo.

Come includere la macro in una funzione SE

Per vedere se la macro funziona correttamente, inserisci la seguente funzione nella cella A2 di una tabella:

= SE (A1 = 1; startmakro (); "Non avviato.")

Se inserisci il numero 1 nella cella A1, la macro verrà chiamata dalla funzione definita dall'utente. Viene visualizzata la finestra dei messaggi come mostrato nella figura seguente:

Poi c'è il testo "Avviato". Nella cella. La funzione del foglio di calcolo definito dall'utente ha restituito questo risultato a Excel.

Se la cella A1 ha un contenuto diverso da 1, la macro non viene avviata. In questo caso, la funzione SE imposta il testo "Non avviato". di conseguenza

Il percorso presentato è una pratica che Microsoft sconsiglia. Le finestre dei messaggi non devono essere visualizzate all'interno delle funzioni definite dall'utente.

Non è necessario separare le due macro START MACRO e DISPLAY. Puoi anche fare a meno del comando CALL nella macro VBA e includere i comandi per la subroutine direttamente nella subroutine FUNCTION.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave