Depuis la sortie de la version 2010 d’Excel, Microsoft a fait son maximum pour faciliter l’automatisation des classeurs Excel et mettre à portée de tous (ou presque) l’écriture des macros.
Dans Microsoft Excel, les macros servent à automatiser les tâches répétitives que vous effectuez fréquemment.
Une macro s’exécute de manière séquentielle. Il s’agit, ni plus ni moins, d’une série d’actions inscrites dans une procédure (Sub), actions qui seront exécutées l’une après l’autre.
Tout l’art consiste à deux choses bien distinctes : s’assurer de faire les actions dans l’ordre (casser les œufs AVANT de faire l’omelette) d’une part et bien réfléchir au contexte.
Sous Excel, cette notion de contexte est essentielle si vous n’êtes pas un pro du langage VBA et de la programmation.
Par exemple, l’action Supprimer la ligne suppose que la ligne de la cellule active soit celle que vous souhaitez effectivement supprimer.
Une fois enregistrée, votre macro pourra être exécutée autant de fois que vous le souhaitez.
Lorsque vous créez une macro, c’est un peu comme enregistrer une piste audio ou un film vidéo : tout ce que vous faites à la souris et au clavier est enregistré et inscrit comme action dans la macro.
Ensuite, au montage (modification de la macro), vous pouvez réorganiser les actions, supprimer les mouvements superflus : utilisation de l’ascenseur de fenêtre, etc.
Les commandes « macros »
Avant de commencer, il convient de vérifier que l’onglet Développeur est disponible dans le ruban d’Excel.
C’est en effet à partir de celui-ci que vous retrouverez l’ensemble des commandes relatives à la gestion des macros.
Pour ce faire, activez l’onglet Fichier, puis cliquez Options (en bas à gauche) et sur Personnaliser le ruban dans la boîte de dialogue qui s’ouvre.
À partir de la section Personnaliser le ruban, dans la zone Onglets principaux, cochez la case d’option Développeur. Validez en cliquant sur OK.
Enregistrez votre première macro avec Excel
À partir de l’onglet Développeur, dans le groupe Code, cliquez sur Enregistrer une macro, puis cliquez sur OK pour démarrer l’enregistrement.
À partir de ce moment, tout ce que vous faites (au clavier et à la souris) sera enregistré. Une règle d’or : vous avez le temps. L’enregistrement d’une macro ne se fait pas en temps limité.
Réfléchissez à chaque action « souris » ou « clavier » avant de la faire, sachant que les déplacements de souris ne comptent pas (seuls les clics sont mémorisés).
Pour votre première macro, positionnez le curseur de cellule active en B3, saisissez Bonjour, appliquer une couleur de Police rouge puis toujours à partir du groupe Code de l’onglet Développeur, cliquez sur Arrêter l’enregistrement pour entériner l’enregistrement des actions de la macro.
Vous pouvez vous familiariser avec le langage de programmation Visual Basic en modifiant les actions associées à une macro que vous avez enregistrée.
Pour ce faire, cliquez sur Macros (onglet Développeur), sélectionnez le nom de la macro enregistrée, puis cliquez sur Modifier.
Adaptez une macro enregistrée
Les macros sont constituées de textes générés lors d’un enregistrement.
Vous pouvez aussi créer le code à partir d’une feuille blanche dans l’éditeur de code ou copier à partir de codes existants.
Dans un premier temps, je vous conseille de positionner le curseur sur une instruction de la macro et d’appuyer sur la touche F1 pour accéder directement à l’aide et comprendre les exemples.
Pour comprendre une macro, il peut être intéressant de l’exécuter manuellement (pas à pas) grâce à un point d’arrêt.
Un point d’arrêt permet de stopper le déroulement d’une macro à un emplacement précis.
Cliquez dans la marge à gauche de la zone de saisie, pour appliquer un point d’arrêt sur la ligne (ou appuyez sur la touche de fonction F9 à l’emplacement du curseur).
Le classeur de macros personnelles
Par défaut, lorsque vous créez une macro dans Excel, celle-ci fonctionne uniquement dans le classeur qui la contient.
Pour l’utiliser depuis un autre classeur, vous devez vous servir du classeur de macros personnelles.
Ce classeur masqué (Personal.xlsb) est ouvert à chaque démarrage d’Excel. Il est stocké par défaut dans le dossier : \AppData\Roaming\Microsoft\ Excel\XLSTART de l’utilisateur.
Pour créer ce classeur, il faut tout simplement enregistrer une macro et sélectionner Classeur de macros personnelles au moment de la sauvegarde pour la liste Enregistrer la macro dans.
Une fois la macro enregistrée, quittez Excel pour faire apparaître le message d’enregistrement des modifications apportées au classeur de macros personnelles.
Au prochain démarrage d’Excel, le classeur personnel se chargera automatiquement. Pour le visualiser, cliquez sur Afficher (onglet Affichage/Fenêtre).
Repérez le nom Personal.xlsb dans la boîte de dialogue Afficher, sélectionnez ce nom et validez par OK.
Les macros enregistrées dans le classeur personnel ne peuvent être modifiées qu’après avoir affiché le classeur personnel afin de prévenir toute manipulation accidentelle.
Après modification de vos macros, sélectionnez dans la boîte de dialogue Afficher le nom Personal.xlsb puis cliquez sur Masquer.
Accéder directement à l’environnement de programmation
Lorsque vous êtes sous Excel, vous pouvez directement accéder à l’environnement contenant le code des macros (l’environnement de programmation Microsoft Visual Basic pour Applications) en appuyant simultanément sur les touches Alt+F11. Cliquez sur l’icône Excel pour basculer sur la feuille de calcul.
Les références relatives ou absolues d’une macro
En mode Absolu, c’est l’adresse des cellules de destination qui sont mémorisées.
Par exemple, si vous passez de la cellule A5 à la cellule B3, deux actions peuvent être enregistrées, se déplacer en B3 (absolu) ou se déplacer vers la cellule située deux lignes au-dessus (5 vers 3) et 1 colonne à droite (A vers B) par rapport à la cellule actuelle (A5) (relatif).
Le passage Absolu/Relatif peut être déclenché sans crainte au cours de l’enregistrement en cliquant sur le bouton Utiliser les références relatives de l’onglet Développeur du ruban Office. Le bouton est sélectionné (contour orange) lorsque le mode relatif est activé.