Vous pouvez utiliser une astuce pour démarrer une macro dès qu'une fonction SI dans votre feuille de calcul Excel fournit un certain résultat
Une macro est à exécuter dans un tableau Excel dès qu'une fonction de tableau SI renvoie une valeur logique. Sinon, un texte devrait simplement être affiché.
Vous résolvez ce problème avec une fonction VBA définie par l'utilisateur. Vous travaillez avec une procédure Function au lieu d'une procédure Sub.
S'il existe déjà une macro que vous souhaitez démarrer avec une fonction SI, vous pouvez copier le code dans la procédure Function ou appeler la procédure Sub à partir de celle-ci.
Une macro nommée « Startmacro » est utilisée à titre d'exemple et n'appelle qu'une simple boîte de dialogue. Suivez ces étapes:
- Démarrez d'abord l'éditeur VBA. Vous pouvez le faire dans toutes les versions d'Excel en utilisant la combinaison de touches ALT F11.
- Sélectionnez la commande INSERER - MODULE pour insérer une nouvelle feuille de module.
Saisissez les commandes VBA suivantes :
Fonction publique Startmakro () en tant que chaîne
Annonce d'appel
Démarrer la macro = "Démarré".
Fonction de fin
Sous-affichage ()
MsgBox "Macro démarrée"
Fin du sous-marin
Le code du programme se compose de deux parties distinctes. Le premier fragment représente la nouvelle fonction de table STARTMAKRO. Le deuxième fragment est utilisé pour afficher le texte "La macro a démarré".
Après avoir entré les commandes, appelez la commande FERMER ET RETOURNER À MICROSOFT EXCEL dans le menu FICHIER de l'éditeur VBA. Cela vous ramène à votre table.
Comment inclure la macro dans une fonction SI
Pour voir si la macro fonctionne correctement, saisissez la fonction suivante dans la cellule A2 d'un tableau :
= SI (A1 = 1; startmakro (); "Non démarré.")
Si vous entrez le numéro 1 dans la cellule A1, la macro sera appelée par votre fonction définie par l'utilisateur. La fenêtre de message apparaît comme illustré dans la figure suivante :
Ensuite, il y a le texte "Démarré". Dans la cellule. La fonction de feuille de calcul définie par l'utilisateur a renvoyé ce résultat à Excel.
Si la cellule A1 a un contenu différent de 1, la macro n'est pas lancée. Dans ce cas, la fonction IF définit le texte "Non démarré". par conséquent
Le chemin présenté est une pratique que Microsoft ne recommande pas. Les fenêtres de messages ne doivent pas être affichées dans les fonctions définies par l'utilisateur.
Il n'est pas nécessaire de séparer les deux macros START MACRO et DISPLAY. Vous pouvez également vous passer de la commande CALL dans la macro VBA et inclure les commandes du sous-programme directement dans le sous-programme FUNCTION.