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 télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

 

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 :

Excel formation - VBA08 lancer procédure - 01

  • Soit en sélectionnant le menu Exécution > Exécuter Sub/UserForm

Excel formation - VBA08 lancer procédure - 02

  • Soit enfin en utilisant le raccourci clavier [F5]

Excel formation - VBA08 lancer procédure - 03

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 :

Excel formation - VBA08 lancer procédure - 04

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] :

Excel formation - VBA08 lancer procédure - 05

Si la fenêtre exécution n’est pas disponible, rendez-vous dans Affichage > Exécution (ou utilisez la combinaison [Ctrl]+[g] :

Excel formation - VBA08 lancer procédure - 06

 

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 :

Excel formation - VBA08 lancer procédure - 07

Soit en utilisant le raccourcis clavier [Alt]+[F8] :

Excel formation - VBA08 lancer procédure - 08

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 :

Excel formation - VBA08 lancer procédure - 09

Pour lancer une macro, nous commençons par la sélectionner, puis nous appuyons sur le bouton [Exécuter] :

Excel formation - VBA08 lancer procédure - 10

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 

 

Excel formation - VBA08 lancer procédure - 11

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) :

Excel formation - VBA08 lancer procédure - 12

Lorsque celui-ci est inséré, Excel affiche automatiquement une fenêtre de sélection de la macro à afficher :

Excel formation - VBA08 lancer procédure - 13

Il s’agit d’une méthode très intuitive que nous pouvons présenter à tous les utilisateurs :

Excel formation - VBA08 lancer procédure - 14

Il est également possible de transformer n’importe quel objet en un bouton, en effectuant un clic-droit > Affecter une macro :

Excel formation - VBA08 lancer procédure - 15

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 :

Excel formation - VBA08 lancer procédure - 16

  • 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,

Excel formation - VBA08 lancer procédure - 17

  • Dans le second menu, nous choisissons l’évènement qui nous intéresse :

Excel formation - VBA08 lancer procédure - 18

  • 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 :

Excel formation - VBA08 lancer procédure - 19

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 » :

Excel formation - VBA08 lancer procédure - 20

Les évènements proposés vont s’adapter au contexte du classeur (ouverture, fermeture, enregistrement, …) :

Excel formation - VBA08 lancer procédure - 21

 

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 

 

Excel formation - VBA08 lancer procédure - 22

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…) :

Excel formation - VBA08 lancer procédure - 23

Il suffit ensuite de saisir la touche correspondante :

Excel formation - VBA08 lancer procédure - 24

 

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… :

Excel formation - VBA08 lancer procédure - 25

Dans la fenêtre qui s’affiche à l’écran, choisissez d’afficher les macros :

Excel formation - VBA08 lancer procédure - 26

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 :

Excel formation - VBA08 lancer procédure - 27

Cliquez enfin sur le bouton [OK], le nouveau bouton est alors ajouté :

Excel formation - VBA08 lancer procédure - 28

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) !

 



Articles qui pourraient vous intéresser

Présentation de Visual Basic Editor (VBE) [#09 FORMATION EXCEL VBA COMPLETE]

Les tableaux croisés dynamiques, c’est facile !

Comment lancer une macro VBA (13 méthodes !) [#08 FORMATION EXCEL VBA COMPLETE]

Dates et heures sur Excel : #05 Comment calculer l'âges et l’ancienneté sur Excel

Commentaires

Il n'y a aucun commentaire...

Poster un commentaire

Pseudo
Commentaire