Comment lancer une macro VBA (13 méthodes !) [#08 FORMATION EXCEL VBA COMPLETE]
Si vous avez suivi tous les modules de la formation VBA, vous devriez déjà être en mesure de développer de petites macros en VBA, mais vous vous posez surement la question de savoir faire pour exécuter celles-ci ? C’est justement ce que nous allons voir dans ce huitième chapitre.
Téléchargement
Vous pouvez obtenir le fichier d'exemple de cet article et découvrir la méthode d'apprentissage de VBA pas-à-pas en cliquant sur le lien suivant :
Tutoriel Vidéo
Les méthodes qui permettent d’exécuter une macro VBA (procédures Sub et Function), sont très nombreuses, et le choix d’utiliser l’une ou l’autre de celles-ci dépendra des habitudes de chacun ainsi que du contexte d’exécution.
Méthode 1 : Directement depuis l’éditeur de code VBE
Lorsque nous sommes en train de développer une macro commande en VBA, il peut arriver que nous ayons besoin de tester le bon déroulement de celle-ci en direct.
Pour cela nous disposons de trois moyens pour lancer la macro dans laquelle se trouve le curseur de la souris :
- Soit en cliquant directement sur le petit triangle vert inséré dans la barre d’outils Standard :
- Soit en sélectionnant le menu Exécution > Exécuter Sub/UserForm
- Soit enfin en utilisant le raccourci clavier [F5]
Lorsque le curseur se trouve en dehors d’une procédure, ou dans une procédure que VBA ne peut lancer (par exemple si celle-ci demande de préciser des paramètres), alors Excel va afficher à l’écran la fenêtre de sélection de Macros, afin que l’utilisateur puisse sélectionner directement quelle macro il veut lancer :
Evidemment, cette méthode est très pratique lorsque nous créons une nouvelle macro, mais doit rester réservée aux développeurs uniquement, les utilisateurs n’ayant en principe pas à avoir accès à l’éditeur de code VBE…
Une dernière possibilité permet de lancer une macro depuis l’éditeur VBE, mais celle-ci n’est pas vraiment pratique : elle consiste à saisir le nom de la macro depuis la fenêtre Exécution puis à valider en appuyant sur la touche [Entrée] :
Si la fenêtre exécution n’est pas disponible, rendez-vous dans Affichage > Exécution (ou utilisez la combinaison [Ctrl]+[g] :
Méthode 2 : Depuis la fenêtre de sélection de macro
Une seconde méthode qui puisse donner accès aux macros d’un classeur consiste à utiliser la fenêtre de sélection de macro que nous avons déjà abordée à l’instant, mais en lançant celle-ci directement depuis une feuille de calcul.
Cette fenêtre est accessible, soit en se rendant dans le menu Développeur > Macros :
Soit en utilisant le raccourcis clavier [Alt]+[F8] :
Notez que dans cette fenêtre il est possible d’afficher les macros disponibles dans tous les classeurs ouverts, ou bien de sélectionner l’origine des celles-ci :
Pour lancer une macro, nous commençons par la sélectionner, puis nous appuyons sur le bouton [Exécuter] :
Enfin, comme nous l’avons vu juste avant, cette fenêtre ne présente que les macros qui ne requièrent aucun argument !
Méthode 3 : Depuis une autre macro
Une macro peut évidement être appelée directement depuis… une autre macro !
Pour cela, il suffit simplement de saisir son nom :
Sub maMacroDeTest()
MsgBox "Macro lancée !"
End Sub
Sub appelerLaMacroDeTest()
maMacroDeTest
End Sub
La macro nécessite un argument, alors celui-ci doit être saisi juste après :
Sub maMacroDeTest(nom)
MsgBox "Bonjour " & nom
End Sub
Sub appelerLaMacroDeTest()
maMacroDeTest "Excelformation.fr"
End Sub
Il est également possible d’utiliser le mot clé facultatif Call (et dans ce cas là si la macro attend des arguments, ils doivent être saisis entre parenthèses) :
Sub appelerLaMacroDeTest()
Call maMacroDeTest("Excelformation.fr")
End Sub
Enfin, il est possible de nommer les arguments directement lors de l’appel de la fonction :
Sub appelerLaMacroDeTest()
Call maMacroDeTest(nom:="Excelformation.fr")
End Sub
Cela permet de pouvoir inverser l’ordre des arguments lorsqu’il y en a plusieurs :
Sub maMacroDeTest(nom, age)
MsgBox "Bonjour " & nom & " (" & age & " ans)"
End Sub
Sub appelerLaMacroDeTest()
Call maMacroDeTest(age:=40, nom:="Excelformation.fr")
End Sub
Méthode 4 : Créer un bouton pour lancer une macro
Il est possible d’affecter le lancement d’une macro à un bouton (menu Développeur > Insérer > Bouton) :
Lorsque celui-ci est inséré, Excel affiche automatiquement une fenêtre de sélection de la macro à afficher :
Il s’agit d’une méthode très intuitive que nous pouvons présenter à tous les utilisateurs :
Il est également possible de transformer n’importe quel objet en un bouton, en effectuant un clic-droit > Affecter une macro :
Méthode 5 : Exécution automatique avec un évènement
Une macro peut aussi être exécutée lorsqu’une action est réalisée sur le classeur ou au sein d’une feuille de calcul, pour cela nous utilisons les évènements de VBA :
- Nous commençons par effectuer un clic droit sur le nom de l’onglet de la feuille de calcul :
- Puis nous cliquons sur Visualiser le code,
- Dans la fenêtre VBE qui s’affiche, nous sélectionnons Worksheet en haut de la feuille de code,
- Dans le second menu, nous choisissons l’évènement qui nous intéresse :
- Au sein duquel nous pouvons lancer une macro (voir la méthode 3 que nous avons vu juste avant)
Private Sub Worksheet_SelectionChange(ByVal Target As
Range)
appelerLaMacroDeTest
End Sub
Dans cet exemple, la macro va être lancée à chaque fois que nous sélectionnons une cellule différente :
Evidemment, attention de ne pas abuser des évènements, sous peine de transformer la vie de l’utilisateur en véritable cauchemar…
Pour insérer un évènement qui concerne cette fois-ci tout le classeur, il faut se rendre dans la feuille de travail « ThisWorkbook » :
Les évènements proposés vont s’adapter au contexte du classeur (ouverture, fermeture, enregistrement, …) :
Méthode 6 : Avec une fonction personnalisée
Comme nous l’avons dans le chapitre précédent (traitant des procédures Function), une fonction personnalisée peut être utilisée directement dans une feuille de calcul :
Function utiliserUneFonction()
appelerLaMacroDeTest
End Function
Méthode 7 : À l’aide d’un raccourci clavier
Il est possible d’affecter un raccourci clavier à une macro, directement depuis la fenêtre de sélection des macros (sélection de la macro > Options…) :
Il suffit ensuite de saisir la touche correspondante :
Méthode 8 : Avec une icône insérée dans la barre de lancement rapide
Pour lancer une macro depuis la barre de lancement rapide (situé au-dessus ou en dessous du menu ruban en fonction des paramètres de votre Excel), effectuez simplement un clic-droit sur celle-ci > Personnaliser la barre d’outils Accès rapide… :
Dans la fenêtre qui s’affiche à l’écran, choisissez d’afficher les macros :
Retrouvez ensuite la macro à ajouter dans la partie gauche, puis cliquez sur le bouton Ajouter >> pour l’insérer directement dans la barre d’Accès rapide :
Cliquez enfin sur le bouton [OK], le nouveau bouton est alors ajouté :
Enfin, sachez qu’une icône peut également être insérée dans un groupe personnalisé du ruban (mais cela nous le verrons dans le détail dans un prochain chapitre) !