Table des matières
Tutoriel étape par étape pour les débutants sur l'enregistrement, la visualisation, l'exécution et la sauvegarde d'une macro. Vous apprendrez également certains mécanismes internes du fonctionnement des macros dans Excel.
Les macros sont un excellent moyen d'automatiser les tâches répétitives dans Excel. Si vous vous retrouvez à faire les mêmes choses encore et encore, enregistrez vos mouvements dans une macro et attribuez-lui un raccourci clavier. Et maintenant, vous pouvez faire exécuter automatiquement toutes les actions enregistrées, d'une seule touche !
Comment enregistrer une macro dans Excel
Comme d'autres outils VBA, les macros Excel résident sur le disque dur de l'ordinateur. Développeur La première chose à faire est donc d'ajouter l'onglet Développeur à votre ruban Excel.
Pour enregistrer une macro dans Excel, procédez comme suit :
- Sur le Développeur dans l'onglet Code cliquez sur le bouton Macro d'enregistrement bouton.
Vous pouvez également cliquer sur le bouton Macro d'enregistrement sur le côté gauche de l'écran Statut bar :
Si vous préférez travailler avec le clavier plutôt qu'avec la souris, appuyez sur la séquence de touches suivante : Alt , L , R (une par une, pas toutes les touches à la fois).
- Dans le Macro d'enregistrement Dans la boîte de dialogue qui apparaît, configurez les principaux paramètres de votre macro :
- Dans le Macro nom Essayez de donner un nom significatif et descriptif à votre macro, afin que vous puissiez la retrouver rapidement dans la liste.
Dans les noms de macro, vous pouvez utiliser des lettres, des chiffres et des caractères de soulignement, le premier caractère devant être une lettre. Les espaces n'étant pas autorisés, vous devez soit conserver un nom à un seul mot en commençant chaque partie par une lettre majuscule (par ex. MyFirstMacro ) ou de séparer les mots par des traits de soulignement (par ex. Ma_première_macro ).
- Dans le Touche de raccourci tapez une lettre quelconque pour attribuer un raccourci clavier à la macro (facultatif).
Les lettres majuscules ou minuscules sont autorisées, mais il est préférable d'utiliser les combinaisons de touches majuscules (Ctrl + Shift + lettre), car les raccourcis des macros remplacent tous les raccourcis Excel par défaut lorsque le classeur contenant la macro est ouvert. Par exemple, si vous attribuez Ctrl + S à une macro, vous perdrez la possibilité d'enregistrer vos fichiers Excel à l'aide du raccourci.raccourci d'enregistrement standard.
- De la Stocker la macro dans dans la liste déroulante, choisissez l'endroit où vous voulez stocker votre macro :
- Cahier de travail personnel sur les macros - enregistre la macro dans un classeur spécial appelé Personnel.xlsb Toutes les macros stockées dans ce classeur sont disponibles chaque fois que vous utilisez Excel.
- Ce cahier d'exercices (par défaut) - la macro sera stockée dans le classeur actuel et sera disponible lorsque vous rouvrirez le classeur ou le partagerez avec d'autres utilisateurs.
- Nouveau cahier d'exercices - crée un nouveau classeur et enregistre la macro dans ce classeur.
- Dans le Description tapez une brève description de ce que fait votre macro (facultatif).
Bien que ce champ soit facultatif, je vous recommande de toujours fournir une brève description. Lorsque vous créez un grand nombre de macros différentes, cela vous aidera à comprendre rapidement ce que fait chaque macro.
- Cliquez sur OK pour commencer à enregistrer la macro.
- Dans le Macro nom Essayez de donner un nom significatif et descriptif à votre macro, afin que vous puissiez la retrouver rapidement dans la liste.
- Effectuez les actions que vous souhaitez automatiser (voir l'exemple de macro d'enregistrement).
- Lorsque vous avez terminé, cliquez sur le bouton Arrêter l'enregistrement sur le bouton Développeur onglet :
Ou le bouton analogue sur le Statut bar :
Exemple d'enregistrement d'une macro dans Excel
Pour voir comment cela fonctionne en pratique, enregistrons une macro qui applique un certain formatage aux cellules sélectionnées. Pour cela, faites ce qui suit :
- Sélectionnez une ou plusieurs cellules que vous souhaitez mettre en forme.
- Sur le Développeur onglet ou Statut cliquez sur Macro d'enregistrement .
- Dans le Macro d'enregistrement configurez les paramètres suivants :
- Nommez la macro Formatage de l'en-tête (parce que nous allons formater les en-têtes de colonnes).
- Placez le curseur dans le champ Touche de raccourci et appuyez simultanément sur les touches Shift + F. Cela permettra d'attribuer le raccourci Ctrl + Shift + F à la macro.
- Choisissez de stocker la macro dans ce classeur.
- Pour Description utilisez le texte suivant qui explique ce que fait la macro : Met le texte en gras, ajoute une couleur de remplissage et centre le texte. .
- Cliquez sur OK pour commencer l'enregistrement.
- Formatez les cellules présélectionnées comme vous le souhaitez. Pour cet exemple, nous utilisons le formatage du texte en gras, la couleur de remplissage bleu clair et l'alignement central.
Conseil : ne sélectionnez aucune cellule après avoir commencé à enregistrer la macro, afin de vous assurer que tous les éléments de formatage s'appliquent à la macro. sélection et non une gamme spécifique.
- Cliquez sur Arrêter l'enregistrement soit sur le Développeur ou l'onglet Statut bar.
Votre macro a été enregistrée. Vous pouvez maintenant sélectionner n'importe quelle plage de cellules dans n'importe quelle feuille, appuyer sur le raccourci assigné (Ctrl+Maj+F) et votre mise en forme personnalisée sera immédiatement appliquée aux cellules sélectionnées.
Comment travailler avec des macros enregistrées dans Excel
Toutes les principales options qu'offre Excel pour les macros sont accessibles via l'onglet Macro Pour l'ouvrir, cliquez sur le bouton Macros sur le bouton Développeur ou appuyez sur le raccourci Alt+ F8.
Dans la boîte de dialogue qui s'ouvre, vous pouvez afficher une liste des macros disponibles dans tous les classeurs ouverts ou associés à un classeur particulier et utiliser les options suivantes :
- Exécuter - exécute la macro sélectionnée.
- Entrez dans - vous permet de déboguer et de tester la macro dans l'éditeur Visual Basic.
- Modifier - ouvre la macro sélectionnée dans l'éditeur VBA, où vous pouvez visualiser et modifier le code.
- Supprimer - supprime définitivement la macro sélectionnée.
- Options - permet de modifier les propriétés de la macro, telles que l'adresse de l'ordinateur associé. Raccourci clé et Description .
Comment afficher les macros dans Excel
Le code d'une macro Excel peut être visualisé et modifié dans l'éditeur Visual Basic. Pour ouvrir l'éditeur, appuyez sur Alt + F11 ou cliquez sur l'icône Visual Basic sur le bouton Développeur onglet.
Si vous voyez l'éditeur VB pour la première fois, ne vous sentez pas découragé ou intimidé. Nous n'allons pas parler de la structure ou de la syntaxe du langage VBA. Cette section vous permettra simplement de comprendre comment fonctionnent les macros Excel et ce que fait l'enregistrement d'une macro.
L'éditeur VBA comporte plusieurs fenêtres, mais nous allons nous concentrer sur les deux principales :
Explorateur de projets - affiche une liste de tous les classeurs ouverts et de leurs feuilles, ainsi que les modules, les formulaires utilisateur et les modules de classe.
Fenêtre de code - c'est là que vous pouvez visualiser, modifier et écrire du code VBA pour chaque objet affiché dans l'explorateur de projet.
Lorsque nous avons enregistré la macro d'exemple, les choses suivantes se sont produites dans le backend :
- Un nouveau module ( Moduel1 ) a été inséré.
- Le code VBA de la macro a été écrit dans la fenêtre Code.
Pour voir le code d'un module spécifique, double-cliquez sur le module ( Module1 dans notre cas) dans la fenêtre de l'explorateur de projet. Normalement, un code de macro a ces parties :
Nom de la macro
En VBA, toute macro commence par Sous suivi du nom de la macro et se termine par End Sub où "Sub" est l'abréviation de Sous-programme (également appelé Procédure Notre exemple de macro est nommé Formatage de l'en-tête() Le code commence donc par cette ligne :
Sub Header_Formatting()Si vous souhaitez renommer la macro il suffit de supprimer le nom actuel et d'en taper un nouveau directement dans la fenêtre Code.
Commentaires
Les lignes préfixées par une apostrophe (') et affichées en vert par défaut ne sont pas exécutées. Il s'agit de commentaires ajoutés à titre d'information. Les lignes de commentaires peuvent être supprimées sans danger sans affecter la fonctionnalité du code.
En général, une macro enregistrée comporte 1 à 3 lignes de commentaires : nom de la macro (obligatoire) ; description et raccourci (si spécifié avant l'enregistrement).
Code exécutable
Après les commentaires, il y a le code qui exécute les actions que vous avez enregistrées. Parfois, une macro enregistrée peut contenir beaucoup de code superflu, qui peut néanmoins être utile pour comprendre comment les choses fonctionnent avec VBA :)
L'image ci-dessous montre ce que fait chaque partie du code de notre macro :
Comment exécuter une macro enregistrée
En exécutant une macro, vous demandez à Excel de revenir au code VBA enregistré et d'exécuter exactement les mêmes étapes. Il existe plusieurs façons d'exécuter une macro enregistrée dans Excel, et voici les plus rapides :
- Si vous avez attribué un raccourci clavier à la macro, appuyez sur ce raccourci.
- Appuyez sur Alt + 8 ou cliquez sur le bouton Macros sur le bouton Développeur Dans l'onglet Macro sélectionnez la macro souhaitée et cliquez sur Exécuter .
Il est également possible d'exécuter une macro enregistrée en cliquant sur votre propre bouton. Voici les étapes à suivre pour en créer une : Comment créer un bouton de macro dans Excel.
Comment enregistrer des macros dans Excel
Que vous ayez enregistré une macro ou écrit du code VBA manuellement, pour sauvegarder la macro, vous devez enregistrer le classeur en tant que macro activée (extension .xlms). Voici comment procéder :
- Dans le classeur contenant la macro, cliquez sur le bouton Sauvez ou appuyez sur Ctrl + S .
- Dans le Enregistrer sous sélectionnez Classeur Excel compatible avec les macros (*.xlsm) de la Enregistrer comme type dans la liste déroulante, puis cliquez sur Sauvez :
Macros Excel : ce qui est et ce qui n'est pas enregistré
Comme vous venez de le voir, il est assez facile d'enregistrer une macro dans Excel. Mais pour créer des macros efficaces, vous devez comprendre ce qui se passe en coulisses.
Ce qui est enregistré
L'enregistreur de macros d'Excel capture un grand nombre de choses - presque tous les clics de souris et les pressions sur les touches. Vous devez donc bien réfléchir à vos étapes pour éviter tout excès de code qui pourrait entraîner un comportement inattendu de votre macro. Vous trouverez ci-dessous quelques exemples de ce qu'Excel enregistre :
- Sélection de cellules avec la souris ou le clavier. Seule la dernière sélection avant une action est enregistrée. Par exemple, si vous sélectionnez la plage A1:A10, puis cliquez sur la cellule A11, seule la sélection de A11 sera enregistrée.
- Mise en forme des cellules, comme la couleur de remplissage et de la police, l'alignement, les bordures, etc.
- Formatage des nombres tels que le pourcentage, la devise, etc.
- Modification des formules et des valeurs. Les modifications sont enregistrées après avoir appuyé sur la touche Entrée .
- Défilement, déplacement des fenêtres Excel, passage à d'autres feuilles de calcul et classeurs.
- Ajouter, nommer, déplacer et supprimer des feuilles de travail.
- Création, ouverture et sauvegarde de classeurs.
- Exécution d'autres macros.
Ce qui ne peut être enregistré
Malgré les nombreuses possibilités d'enregistrement offertes par Excel, certaines fonctions dépassent les capacités de l'enregistreur de macros :
- Personnalisations du ruban Excel et de la barre d'outils Accès rapide.
- Actions dans les boîtes de dialogue Excel telles que Mise en forme conditionnelle ou Rechercher et remplacer (seul le résultat est enregistré).
- Interactions avec d'autres programmes. Par exemple, vous ne pouvez pas enregistrer le copier/coller d'un classeur Excel dans un document Word.
- Tout ce qui implique l'éditeur VBA, ce qui impose les limitations les plus importantes - beaucoup de choses qui peuvent être faites au niveau de la programmation ne peuvent pas être enregistrées :
- Création de fonctions personnalisées
- Affichage de boîtes de dialogue personnalisées
- Faire des boucles telles que Pour le prochain , Pour chaque , Faire pendant que etc.
- Évaluation des conditions. En VBA, vous pouvez utiliser la fonction IF Then Else pour tester une condition et exécuter un code si la condition est vraie ou un autre code si la condition est fausse.
- Exécution de code basé sur des événements. Avec VBA, vous pouvez utiliser de nombreux événements pour exécuter un code associé à cet événement (comme l'ouverture d'un classeur, le recalcul d'une feuille de calcul, la modification de la sélection, etc.)
- Utilisation d'arguments. Lorsque vous écrivez une macro dans l'éditeur VBA, vous pouvez fournir des arguments d'entrée pour qu'une macro effectue une certaine tâche. Une macro enregistrée ne peut pas avoir d'arguments car elle est indépendante et n'est pas connectée à d'autres macros.
- Comprendre la logique. Par exemple, si vous enregistrez une macro qui copie des cellules spécifiques, disons dans le fichier Total Excel n'enregistrera que les adresses des cellules copiées. Avec VBA, vous pouvez coder la logique, c'est-à-dire copier les valeurs dans la ligne Total rang.
Bien que les limitations ci-dessus fixent de nombreuses limites aux macros enregistrées, elles constituent néanmoins un bon point de départ. Même si vous n'avez aucune idée du langage VBA, vous pouvez enregistrer rapidement une macro, puis analyser son code.
Conseils utiles pour l'enregistrement de macros dans Excel
Vous trouverez ci-dessous quelques conseils et notes qui peuvent potentiellement vous faire gagner beaucoup de temps et vous épargner des nerfs en rendant votre courbe d'apprentissage plus douce et les macros plus efficaces.
Utiliser des références relatives pour l'enregistrement de macros
Par défaut, Excel utilise absolu référencement Cela signifie que votre code VBA fera toujours référence aux mêmes cellules que celles que vous avez sélectionnées, quel que soit l'endroit où vous vous trouvez dans la feuille de calcul lorsque vous exécutez la macro.
Toutefois, il est possible de modifier le comportement par défaut pour référencement relatif Dans ce cas, VBA ne codera pas en dur les adresses des cellules, mais travaillera par rapport à la cellule active (actuellement sélectionnée).
Pour enregistrer une macro avec un référencement relatif, cliquez sur le bouton Utilisez Références relatives sur le bouton Développeur Pour revenir au référencement absolu, cliquez à nouveau sur le bouton pour le désactiver.
Par exemple, si vous enregistrez la configuration d'un tableau avec le référencement absolu par défaut, votre macro recréera toujours le tableau au même endroit (dans ce cas, En-tête en A1, Article 1 en A2, Item2 en A3).
Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub
Si vous enregistrez la même macro avec un référencement relatif, la table sera créée là où vous avez placé le curseur avant d'exécuter la macro ( En-tête dans la cellule active, Point 1 dans la cellule du dessous, et ainsi de suite).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End SubNotes :
- Lorsque vous utilisez des références relatives, veillez à sélectionner la cellule initiale avant de commencer à enregistrer une macro.
- La référence relative ne fonctionne pas pour tout. Certaines fonctions d'Excel, par exemple la conversion d'une plage en tableau, nécessitent des références absolues.
Sélectionner des plages en utilisant des raccourcis clavier
Lorsque vous sélectionnez une cellule ou une plage de cellules à l'aide de la souris ou des touches fléchées, Excel écrit les adresses des cellules. Par conséquent, lorsque vous exécutez une macro, les opérations enregistrées seront effectuées exactement sur les mêmes cellules. Si ce n'est pas ce que vous souhaitez, utilisez des raccourcis pour sélectionner les cellules et les plages.
À titre d'exemple, enregistrons une macro qui définit un format spécifique (j-mmm-aa) pour les dates du tableau ci-dessous :
Pour cela, vous enregistrez les opérations suivantes : appuyez sur Ctrl + 1 pour ouvrir le Formatage des cellules dialogue> ; Date> ; choisir le format> ; OK. Si votre enregistrement comprend la sélection de la plage avec la souris ou les touches fléchées, Excel produira le code VBA suivant :
Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End SubL'exécution de la macro ci-dessus sélectionnerait la plage A2:B4 à chaque fois. Si vous ajoutez d'autres lignes à votre tableau, elles ne seront pas traitées par la macro.
Maintenant, voyons ce qui se passe lorsque vous sélectionnez le tableau en utilisant un raccourci.
Placez le curseur dans la cellule supérieure gauche de la plage cible (A2 dans cet exemple), commencez à enregistrer et appuyez sur Ctrl + Shift + End . La première ligne du code ressemblera alors à ceci :
Ce code sélectionne toutes les cellules, de la cellule active à la dernière cellule utilisée, ce qui signifie que toutes les nouvelles données seront automatiquement incluses dans la sélection.
Vous pouvez également utiliser les combinaisons Ctrl + Shift + Flèches :
- Ctrl + Shift + Flèche droite pour sélectionner toutes les cellules utilisées à droite, suivi par
- Ctrl + Shift + Flèche vers le bas pour sélectionner toutes les cellules utilisées vers le bas.
Cela générera deux lignes de code au lieu d'une, mais le résultat sera le même : toutes les cellules contenant des données en bas et à droite de la cellule active seront sélectionnées :
Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). SelectEnregistrer une macro pour une sélection plutôt que des cellules spécifiques
La méthode ci-dessus (c'est-à-dire la sélection de toutes les cellules utilisées en commençant par la cellule active) fonctionne parfaitement pour effectuer les mêmes opérations sur l'ensemble du tableau. Dans certaines situations, cependant, vous pouvez souhaiter que la macro traite une certaine plage plutôt que l'ensemble du tableau.
Pour cela, VBA fournit la fonction Sélection qui fait référence à la ou aux cellules actuellement sélectionnées. La plupart des choses que l'on peut faire avec une plage peuvent également être faites avec la sélection. Quel avantage cela vous apporte-t-il ? Dans de nombreux cas, il n'est pas nécessaire de sélectionner quoi que ce soit pendant l'enregistrement - il suffit d'écrire une macro pour la cellule active. Ensuite, sélectionnez la plage de votre choix, exécutez la macro et elle manipulera la sélection entière.
Par exemple, cette macro d'une ligne peut formater un nombre quelconque de cellules sélectionnées sous forme de pourcentages :
Sub Percent_Format() Selection.NumberFormat = "0.00%" End SubPlanifiez soigneusement ce que vous enregistrez
L'enregistreur de macros Microsoft Excel capture la quasi-totalité de votre activité, y compris les erreurs que vous faites et corrigez. Par exemple, si vous appuyez sur Ctrl + Z pour annuler quelque chose, cela sera également enregistré. Au bout du compte, vous risquez de vous retrouver avec beaucoup de code inutile. Pour éviter cela, modifiez le code dans l'éditeur VB ou arrêtez l'enregistrement, supprimez une macro défectueuse et recommencez l'enregistrement.
Sauvegarde ou enregistrement du classeur avant l'exécution d'une macro
Le résultat des macros Excel ne peut pas être annulé. Par conséquent, avant la première exécution d'une macro, il est judicieux de créer une copie du classeur ou au moins de sauvegarder votre travail en cours afin d'éviter des changements inattendus. Si la macro fait quelque chose de mal, fermez simplement le classeur sans sauvegarder.
Gardez les macros enregistrées courtes
Lorsque vous automatisez une série de tâches différentes, vous pouvez être tenté de les enregistrer toutes dans une seule macro. Il y a deux raisons principales de ne pas le faire. Premièrement, il est difficile d'enregistrer une longue macro sans faire d'erreurs. Deuxièmement, les grandes macros sont difficiles à comprendre, à tester et à déboguer. Par conséquent, il est bon de diviser une grande macro en plusieurs parties. Par exemple, lors de la création d'un tableau récapitulatifà partir de plusieurs sources, vous pouvez utiliser une macro pour importer les informations, une autre pour consolider les données et une troisième pour mettre en forme le tableau.
J'espère que ce tutoriel vous a donné un aperçu de la façon d'enregistrer une macro dans Excel. Quoi qu'il en soit, je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !