Exécuter une macro

Il existe plusieurs moyens d’exécuter une macro dans Microsoft Excel. Une macro est une action ou un ensemble d’actions qui permettent d’automatiser des tâches. Les macros sont enregistrées dans le langage de programmation Visual Basic pour Applications. Vous pouvez toujours exécuter une macro en cliquant sur la commande Macros du Ruban. En fonction du mode d’affectation d’une macro, vous pouvez également exécuter la macro en utilisant une touche de raccourci avec la touche Ctrl, en cliquant sur un bouton de la barre d’outils Accès rapide ou dans un groupe personnalisé sur le Ruban, ou une zone dans un objet, un graphique ou un contrôle. De même, vous pouvez exécuter une macro automatiquement à l’ouverture du classeur.

Remarque : Lorsque vous définissez le niveau de sécurité des macros dans Excel sur Désactiver toutes les macros sans notification, Excel n’exécute que les macros signées numériquement ou stockées à un emplacement approuvé, comme le dossier de démarrage d’Excel sur votre ordinateur. Si la macro que vous souhaitez exécuter n’est pas signée numériquement ou qu’elle ne se trouve pas à un emplacement approuvé, vous pouvez modifier temporairement le niveau de sécurité qui active toutes les macros.

Avant d’exécuter des macros

Vous devez modifier plusieurs paramètres dans Excel avant de pouvoir exécuter des macros :

  1. Si l’onglet Développeur n’est pas disponible, affichez-le. Pour plus d’informations, voir Afficher l’onglet Développeur.

  2. Pour définir temporairement le niveau de sécurité de manière à activer toutes les macros, procédez comme suit :

    1. Sous l’onglet Développeur, dans le groupe Code, cliquez sur Sécurité des macros.

      Onglet Développeur du ruban
    2. Dans la catégorie Paramètres des macros, sous Paramètres des macros, cliquez sur Activer toutes les macros (non recommandé ; risque d’exécution de code potentiellement dangereux), puis cliquez sur OK.

      Remarque : Pour empêcher du code potentiellement dangereux de s’exécuter, il est recommandé de revenir à chacun des paramètres qui désactivent toutes les macros une fois que vous avez fini d’utiliser des macros.

  1. Ouvrez le classeur contenant les macros.

  2. Sous l’onglet Développeur, dans le groupe Code, cliquez sur Macros.

    Onglet Développeur du ruban
  3. Dans la zone Nom de la macro, cliquez sur la macro à exécuter.

  4. Effectuez l’une des actions suivantes :

    • Vous pouvez également appuyer sur CTRL+F8 pour exécuter la macro. Pour arrêter la macro, appuyez sur ÉCHAP.

    • Pour exécuter une macro dans un module Microsoft Visual Basic pour Applications (VBA), cliquez sur Modifier, puis, dans le menu Exécution, cliquez sur Exécuter Sub/UserForm ou appuyez sur la touche F5.

  1. Sous l’onglet Développeur, dans le groupe Code, cliquez sur Macros.

    Onglet Développeur du ruban
  2. Dans la zone Nom de la macro, cliquez sur la macro à affecter à une touche de raccourci utilisant la touche Ctrl.

  3. Cliquez sur Options.

    La boîte de dialogue Options de macro s’affiche.

  4. Dans la zone Touche de raccourci, entrez les lettres minuscules ou majuscules que vous souhaitez utiliser avec la touche Ctrl.

    Remarque : La touche de raccourci remplace une touche de raccourci Excel par défaut lorsque le classeur contenant la macro est ouvert.

    Pour obtenir une liste des touches de raccourci utilisant la touche CTRL qui sont déjà affectées dans Excel, voir l’article Touches de raccourci et de fonction dans Excel.

  5. Dans la zone Description, tapez une description de la macro.

  6. Cliquez sur OK pour enregistrer vos modifications, puis cliquez sur Annuler pour fermer la boîte de dialogue Macro.

Pour exécuter une macro à partir d’un bouton de la barre d’outils Accès rapide, vous devez tout d’abord ajouter le bouton à la barre d’outils. Pour ce faire, voir Affecter une macro à un bouton.

Vous pouvez créer un groupe personnalisé qui apparaît sur un onglet dans le Ruban, puis affecter une macro à un bouton dans ce groupe. Par exemple, vous pouvez ajouter un groupe personnalisé nommé « Mes macros » à l’onglet Développeur, puis ajouter une macro (apparaissant sous forme de bouton) sur le nouveau groupe. Pour ce faire, voir Affecter une macro à un bouton.

Exécuter une macro en cliquant dans une zone d’un objet graphique

Vous pouvez créer une zone réactive sur un graphique sur laquelle les utilisateurs peuvent cliquer pour exécuter une macro.

  1. Dans la feuille de calcul, insérez un objet graphique, par exemple une image, une image clipart, une forme ou un SmartArt.

    Pour plus d’informations sur l’insertion d’un objet graphique, voir Ajouter, modifier ou supprimer des formes.

  2. Pour créer une zone réactive dans l’objet existant, cliquez sur Insérer > Formes, sélectionnez la forme désirée et tracez la forme sur l’objet existant.

    Formes
  3. Avec le bouton droit, cliquez sur la zone réactive que vous avez créée, puis cliquez sur Affecter une macro.

  4. Effectuez l’une des actions suivantes :

    • Pour affecter une macro existante à l’objet graphique, double-cliquez sur la macro ou entrez son nom dans le champ Nom de la macro.

    • Pour enregistrer une nouvelle macro à affecter à l’objet graphique sélectionné, cliquez sur Enregistrer, tapez un nom pour la macro dans la boîte de dialogue Enregistrer une macro, puis cliquez sur OK pour commencer l’enregistrement. Lorsque vous avez terminé l’enregistrement de la macro, cliquez sur Arrêter l’enregistrement Image du bouton sous l’onglet Développeur du groupe Code.

      Conseil : Vous pouvez également cliquer sur Arrêter l’enregistrement Image du bouton à gauche de la barre d’état.

    • Pour modifier une macro existante, cliquez sur son nom dans la zone Nom de la macro, puis cliquez sur Modifier.

  5. Cliquez sur OK.

  6. Dans la feuille de calcul, sélectionnez la zone réactive. La section Outils de dessin s’affiche et présente l’onglet Format.

  7. Sous l’onglet Format du groupe Styles de forme, cliquez sur la flèche en regard de Remplissage de forme, puis cliquez sur Aucun remplissage.

    Menu d’options de couleurs dans Remplissage de la forme

  8. Cliquez sur la flèche accolée à Contour de forme, puis cliquez sur Sans contour.

Si vous enregistrez une macro sous le nom Auto_Open, elle sera exécutée à chaque ouverture du classeur qui la contient. Vous pouvez également exécuter une macro lorsque vous ouvrez un classeur pour écrire une procédure VBA dans l’événement Open du classeur à l’aide de Visual Basic Editor. L’événement Open est un événement de classeur intégré qui exécute le code de sa macro chaque fois que vous ouvrez le classeur.

Créer une macro Auto_Open

  1. Si vous souhaitez enregistrer la macro avec un classeur particulier, ouvrez d’abord ce classeur.

  2. Sous l’onglet Développeur, dans le groupe Code, cliquez sur Enregistrer une macro.

  3. Dans la zone Nom de la macro, tapez Auto_Open.

  4. Dans la liste Enregistrer la macro dans, sélectionnez le classeur dans lequel vous souhaitez stocker la macro.

    Conseil : Si vous voulez que la macro soit disponible chaque fois que vous utilisez Excel, sélectionnez Classeur de macros personnelles. Lorsque vous sélectionnez Classeur de macros personnelles, Excel crée un classeur de macros personnelles masqué (Personal.xlsb) s’il n’existe pas encore, et y enregistre la macro. Sous Windows Vista, ce classeur est enregistré dans le dossier C:\Users\nom d’utilisateur\AppData\Local\Microsoft\Excel\XLStart. Si vous ne le trouvez pas à cet emplacement, il a peut-être été enregistré dans le sous-dossier Roaming au lieu de Local. Sous Microsoft Windows XP, ce classeur est enregistré dans le dossier C:\Documents and Settings\nom d’utilisateur\Application Data\Microsoft\Excel\XLStart. Les classeurs présents dans le dossier XLStart s’ouvrent automatiquement au démarrage d’Excel. Si vous souhaitez qu’une macro du classeur de macros personnelles soit exécutée automatiquement dans un autre classeur, vous devez également enregistrer ce dernier dans le dossier XLStart afin que les deux classeurs soient ouverts au démarrage d’Excel.

  5. Cliquez OK, puis exécutez les actions que vous voulez enregistrer.

  6. Dans l’onglet Développeur, dans le groupe Code, cliquez sur Arrêter l’enregistrement Image du bouton .

    Conseil : Vous pouvez également cliquer sur Arrêter l’enregistrement à gauche de la barre d’état.

    Le bouton Arrêter l’enregistrement sur la barre d’état

Remarques : 

  • Si vous choisissez d’enregistrer la macro dans Ce classeur ou un Nouveau classeur à l’étape 6, enregistrez ou déplacez le classeur dans l’un des dossiers XLStart.

  • L’enregistrement d’une macro « Auto_Open » comporte les limites suivantes :

    • Si le classeur dans lequel vous enregistrez la macro « Auto_Open » contient déjà une procédure VBA dans son événement Open, la procédure VBA pour l’événement Open remplace toutes les actions dans la macro Auto_Open.

    • Une macro « Auto_Open » est ignorée lorsqu’un classeur est ouvert par le biais du code à l’aide de la méthode Open.

    • Une macro « Auto_Open » s’exécute avant que les autres classeurs s’ouvrent. Par conséquent, si vous enregistrez des actions que vous souhaitez qu’Excel réalise dans le classeur Book1 par défaut ou dans un classeur chargé à partir du dossier XLStart, la macro « Auto_Open » échoue lorsque vous relancez Excel car la macro s’exécute avant que les classeurs par défaut et de démarrage s’ouvrent.

      Si vous rencontrez ces limites, au lieu d’enregistrer une macro « Auto_Open », vous devez créer une procédure VBA pour l’événement Open comme cela est décrit dans la section suivante de cet article.

  • Si vous voulez qu’Excel démarre sans exécuter de macro Auto_Open, maintenez la touche Maj enfoncée lors du démarrage d’Excel.

Créer une procédure VBA pour l’événement Open d’un classeur

L’exemple ci-dessous utilise l’événement Open pour exécuter une macro lorsque vous ouvrez le classeur.

  1. Enregistrez et fermez les classeurs ouverts.

  2. Ouvrez le classeur auquel vous souhaitez ajouter la macro, ou créez un classeur.

  3. Sous l’onglet Développeur, dans le groupe Code, cliquez sur Visual Basic.

  4. Dans la fenêtre Explorateur de projets, cliquez avec le bouton droit sur l’objet ThisWorkbook, puis cliquez sur Visualiser le code.

    Conseil : Si la fenêtre Explorateur de projets n’est pas visible, dans le menu Affichage, cliquez sur Explorateur de projets.

  5. Dans la liste Objet au-dessus de la fenêtre Code, sélectionnez Classeur.

    Cette opération crée automatiquement une procédure vide pour l’événement Open, comme suit :

    Private Sub Workbook_Open()

    End Sub

  6. Ajoutez les lignes de code suivantes à la procédure :

    Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Sheet1").Range("A1").Value = Date
    End Sub

  7. Basculez vers Excel et enregistrez le classeur sous forme de classeur prenant en charge les macros (.xlsm).

  8. Fermez le classeur et rouvrez-le. Lorsque vous ouvrez de nouveau le fichier, Excel exécute la procédure « Workbook_Open » qui affiche la date courante dans un message.

  9. Cliquez sur OK dans la boîte de dialogue du message.

    Remarque : La cellule A1 de la feuille 1 contient elle aussi la date suite à l’exécution de la procédure « Workbook_Open ».

Vous avez besoin d’une aide supplémentaire ?

Vous pouvez toujours consulter un expert de la communauté technique Excel, obtenir une assistance dans la communauté Answers ou suggérer une nouvelle fonctionnalité ou une amélioration sur le forum Excel User Voice

Haut de la page

Voir aussi

Exécuter automatiquement une macro à l’ouverture d’un classeur 

Automatiser des tâches avec l’enregistreur de macro

Enregistrer une macro pour ouvrir des classeurs spécifiques au démarrage d’Excel

Créer et enregistrer toutes vos macros dans un même classeur

Enregistrer une macro

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×