Si vous tra­vail­lez ré­gu­liè­re­ment avec des pro­grammes de trai­te­ment de données, des systèmes de bases de données, ou des ap­pli­ca­tions de tableur, alors vous savez combien il peut être fatigant de répéter encore et toujours les mêmes ins­truc­tions. Les processus en par­ti­cu­lier longs et complexes mettent nos nerfs à l’épreuve. Heu­reu­se­ment, il existe ce que l’on appelle les macros (raccourci de macro-ins­truc­tions) qui per­met­tent d’en­re­gis­trer une suite de commandes afin qu’elle puisse être au­to­ma­ti­que­ment exécutée par un simple clic à l’instant voulu. Bien que les macros soient écrites en programme in­for­ma­tique, aucune con­nais­sance dans ce domaine n’est en principe né­ces­saire. De nombreux pro­grammes, parmi lesquels Excel, peuvent en effet en­re­gis­trer des macros simples et aider à les mettre en place fa­ci­le­ment. Pour Microsoft Excel, les macros cons­ti­tuent l’une des ca­rac­té­ris­tiques les plus im­por­tantes du logiciel de tableur.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Qu’est-ce qu’une macro Excel ?

Microsoft Excel fait partie des solutions les plus po­pu­laires pour traiter, analyser et présenter des données. Les uti­li­sa­teurs Windows tra­vail­lent depuis des années avec cette méthode de tableur de la suite Microsoft Office qui permet par exemple de mettre en place un budget ou de créer son propre ca­len­drier. Excel est largement sollicité dans les en­tre­prises grâce à ses pos­si­bi­li­tés de re­pré­sen­ta­tions gra­phiques qui per­met­tent de mettre en valeur en un clin d’œil des chiffres d’affaires, dépenses ou autres données clés. Il permet ainsi de sim­pli­fier les mises en page. En se fa­mi­lia­ri­sant avec le programme, de nom­breuses pos­si­bi­li­tés s’offrent à vous. Toutefois, force est de constater qu’il devient ra­pi­de­ment éreintant de répéter cons­tam­ment les mêmes routines de commandes et d’actions, d’autant plus qu’elles ne sont pas toujours simples et qu’elles se révèlent souvent très chro­no­phages.

Il n’est pas il­lé­gi­time de con­si­dé­rer que les macros font partie du cœur des fonctions d’Excel. Elles peuvent être mises en place grâce au langage de script Visual Basic for Ap­pli­ca­tions (VBA) intégré au programme Excel mais aussi Word, Po­wer­Point, Access et Outlook. Ce langage simplifie leur ins­tal­la­tion et permet ainsi sim­ple­ment d’exécuter des suites de commandes au­to­ma­ti­que­ment ou même d’ajouter de nouvelles fonctions au tableur (comme des al­go­rithmes pour les analyses de données).

Comment fonc­tion­nent les macros Excel ?

Excel présente les dif­fé­rents éléments de son interface sous forme d’objets hié­rar­chi­sés. Ces derniers com­por­tent des méthodes et des pro­prié­tés. Tous les objets dis­po­nibles sont donc en lien les uns avec les autres grâce à des modèles hié­rar­chi­sés. En dé­fi­nis­sant des pro­prié­tés et en faisant appel à une méthode, vous traitez vos dif­fé­rents objets. Pour l’objet « Workbook », il existe par exemple la méthode « Close » avec laquelle vous pouvez fermer le classeur choisi. Quant à la propriété « Ac­ti­ve­Sheet », elle re­pré­sente la feuille qui est alors active dans le classeur.

Par ailleurs, à l’aide de col­lec­tions, c’est-à-dire d’objets de même nature (le nom de la col­lec­tion est celui de l’objet avec l’ajout d’un « s »), les macros peuvent exécuter des actions d’un groupe complet d’objets. Les objets de la col­lec­tion « Work­sheets » prennent effet par exemple dans une macro qui donne des in­di­ca­tions pour toutes les feuilles de travail. Pour exécuter une macro, vous avez les trois options suivantes :

  • Sélection dans le menu macro
  • Clic sur un bouton créé in­di­vi­duel­le­ment
  • Rac­cour­cis claviers per­son­na­li­sés

Les avantages des macros Excel

Renoncer à mettre en place des macros (que ce soit vo­lon­taire ou in­vo­lon­taire) n’a pas obli­ga­toi­re­ment un impact négatif sur un fichier Excel. Mais pour une bonne qualité de travail, passer outre les macros ne facilite pas la tâche. Il est en effet in­con­tes­table que les tech­niques de macros re­pré­sen­tent d’énormes avantages pour tirer le meilleur profit du tableur.

  • Les macros réduisent le nombre d’erreurs : à chaque nouvelle ins­truc­tion entrée ma­nuel­le­ment sur Excel, un risque nouveau de faire une erreur existe. Ceci est le cas par­ti­cu­liè­re­ment pour les suites d’opé­ra­tions complexes qui se répètent ; les erreurs ap­pa­rais­sent ra­pi­de­ment et bloquent mal­heu­reu­se­ment souvent l’ensemble du processus. Installer des macros permet donc de con­tour­ner ce risque : en effet, si cette dernière a bien été con­fi­gu­rée, tout uti­li­sa­teur pourra l’utiliser à ré­pé­ti­tion sans provoquer de blocage.
  • Les macros font gagner du temps : créer une macro nécessite juste une seule con­fi­gu­ra­tion. Ensuite, il est possible d’utiliser la suite de commandes aussi souvent que vous le souhaitez grâce à un clic ou le raccourci configuré. Cela permet de vous épargner beaucoup de temps et de devenir plus efficace.
  • Les macros élar­gis­sent les fonctions d’Excel : avec le VBA, il est possible non seulement de pro­gram­mer des macros qui re­grou­pent des ordres, mais aussi de dé­ve­lop­per de nouvelles fonctions. Ainsi, vous pouvez aller au-delà des fonctions intégrées et sim­pli­fier con­si­dé­ra­ble­ment vos opé­ra­tions.

Comment créer sa propre macro Excel ?

Afin de mettre en place sa propre suite d’ins­truc­tions, il est né­ces­saire d’activer tout d’abord l’éditeur VBA qui fait partie in­té­grante de l’outil Dé­ve­lop­peur. En principe, l’onglet Dé­ve­lop­peur n’est pas ac­ces­sible di­rec­te­ment depuis la barre de menu (qui est appelée ruban chez Microsoft). La première étape va donc consister à l’ajouter.

Etape 1 : ajouter l’onglet « Dé­ve­lop­peur »

Choi­sis­sez l’onglet « Fichier » puis « Options ». Ensuite sous « Per­son­na­li­ser le ruban », vous trouverez une liste dé­rou­lante dans laquelle vous pouvez cocher la case « Dé­ve­lop­peur ».

Validez en cliquant sur « OK ». L’onglet apparaît alors bien dans votre ruban de menu.

Etape 2 : créer un nouveau classeur pour macros

Ensuite, il est né­ces­saire de mettre en place un nouveau classeur Excel qui pourra en­re­gis­trer les macros comme base. Pour cela, cliquez sur l’onglet « Dé­ve­lop­peur » que vous venez de con­fi­gu­rer, puis sur « macros ». Attribuez dans « nom de macro » le nom du nouveau classeur (nous choi­si­rons ici « Hello »). Validez en cliquant sur « Créer ». L’éditeur VBA s’ouvre avec le code suivant :

Sub cor­res­pond ici à Su­brou­tine, c’est-à-dire en quelque sorte à un sous-programme pour la macro. Pour chaque macro, l’ensemble du code qui se situe entre Sub et End Sub est exécuté. Pour test, vous pouvez allonger le code de la macro « Hello » comme suit :

Sub Hello()
    MsgBox ("Hello World!")
End Sub

En­re­gis­trez le résultat en format .xlsm, retournez dans l’interface de programme Excel, sé­lec­tion­nez le bouton « Macros » et choi­sis­sez la macro « Hello » dans la liste. En cliquant sur « exécuter », une petite fenêtre d’in­for­ma­tion apparaît avec le texte défini préa­la­ble­ment :

En cliquant sur « Ok », vous fermez la fenêtre et terminez l’exécution de la macro. En­re­gis­trez le classeur dans l’éditeur VBA.

Etape 3 : créer un raccourci pour la macro

Dans l’onglet « Dé­ve­lop­peur » comme dans l’onglet « Affichage », vous pouvez retrouver vos macros (le bouton « Macros » est dis­po­nible dans les deux onglets) et les exécuter. Si vous avez besoin d’utiliser fré­quem­ment vos macros, il sera toutefois judicieux de créer un accès rapide en dé­fi­nis­sant un bouton comme raccourci depuis la liste de symbole. Pour cela, il est né­ces­saire de procéder comme suit :

1. Ouvrez l’onglet « Fichier ».

2. Ouvrez les options et cliquez dans le menu sur « Barre d’outils Accès rapide ».

3. Choi­sis­sez dans le menu déroulant la catégorie « Macros » puis cherchez votre macro nou­vel­le­ment créée « Hello ».

4. Sé­lec­tion­nez-la et cliquez sur « Ajouter » pour l’insérer dans la liste des accès rapides de droite.

5. Avant de confirmer l’interface grâce au « OK », sé­lec­tion­nez le symbole qui fera figure de raccourci en cliquant sur « modifier ».

Votre symbole cor­res­pon­dant à la macro « Hello » se trouve main­te­nant dans les rac­cour­cis de votre fichier, aux côtés des symboles « en­re­gis­trer », « retour » et « repérer » :

Notes : Vous pouvez aussi con­fi­gu­rer un raccourci clavier en vous rendant sur : « Dé­ve­lop­peur » -> « Macros » -> « Options ».

Etape 4 : utiliser la macro en­re­gis­trée

L’éditeur VBA, intégré dans la suite Office de Microsoft, a l’avantage de vous permettre de mettre en place des macros simples sans avoir forcement des con­nais­sances en pro­gram­ma­tion. Les fonctions intégrées pour en­re­gis­trer des macros vous donnent une large palette de pos­si­bi­li­tés. Par exemple, on peut mettre en place une macro qui rebaptise au­to­ma­ti­que­ment une feuille de calcul. Pour cela, opérez comme suit :

1. Dans l’onglet « Dé­ve­lop­peur » puis le groupe de commandes « Code », choi­sis­sez l’option « En­re­gis­trer une macro ».

2. Dans la fenêtre de dialogue, donner à la macro le nom « Re­na­me­Work­sheets » et commencez en cliquant sur « ok ».

3. Renommez votre feuille de calcul 1 « Nouveau nom » et terminez l’opération en validant sur « Arrêter l’en­re­gis­tre­ment ».

Lorsque vous revenez vers l’éditeur VBA (« Dé­ve­lop­peur » -> « Macros » -> « pas à pas détaillé »), le code doit à quelques dif­fé­rences près être le suivant :

Sur les quatre premières lignes de code qui com­men­cent par une apos­trophe (sous la ligne « Sub »), on trouve des lignes de com­men­taires. Elles n’ont aucun impact sur les fonc­tion­na­li­tés de la macro et servent avant tout à bien com­prendre le code. Les lignes de com­men­taires peuvent être pro­vi­soi­re­ment dé­sac­ti­vées. Pour notre exemple de macro, vous n’aurez pas besoin de ses quatre lignes, vous pouvez donc les supprimer sans scrupules.

La ligne suivante présente la méthode Select, avec « feuil1 » qui était au préalable défini avant que vous n’entriez votre nouveau nom. Les scripts VBA ne doivent toutefois pas sé­lec­tion­ner les objets pour pouvoir les traiter, et vous n’en avez également pas besoin pour ces lignes de codes de votre macro Excel. Les lignes de code com­plè­te­ment re­tra­vail­lées res­semblent au code ci-dessous :

Sub RenameWorksheets ()
    Sheets("Feuil1").Name = "Nouveau Nom"
End Sub

Revenez à l’interface d’Excel et re­bap­ti­sez votre feuille « Feuil1 ». Exécutez pour test la macro Re­na­me­Work­sheets : le nom doit alors se modifier au­to­ma­ti­que­ment. Faites attention à adapter main­te­nant votre macro à votre nouveau nom, pour pouvoir l’exécuter de nouveau.

Les macros Excel en pratique : dia­grammes et masques de saisie

Les scripts VBA per­met­tent d’au­to­ma­ti­ser dif­fé­rentes ins­truc­tions Excel. Grâce aux en­re­gis­tre­ments, vous pouvez non seulement essayer de sim­pli­fier vos processus de travail mais aussi d’acquérir des con­nais­sances sur le langage de pro­gram­ma­tion. N’hésitez pas à utiliser l’outil VBA si vous estimez qu’une macro Excel peut faciliter une étape de votre travail.

Après vous avoir présenté dans les pa­ra­graphes pré­cé­dents les processus généraux pour mettre en place une macro, les deux exemples suivants vont vous permettre de com­prendre con­crè­te­ment la diversité des pos­si­bi­li­tés à dis­po­si­tion pour au­to­ma­ti­ser vos commandes.

Créer un diagramme sur la base d’une sélection de cellules

Une fonction très courante dans l’uti­li­sa­tion des tableaux Excel est la vi­sua­li­sa­tion de données sous forme de graphique. Les macros peuvent donc apporter une aide utile à ce processus quelque peu pénible. A cette fin, mettez en place une macro sous le nom « As­sor­ted­Tasks » et déclarez la variable de votre objet de diagramme :

Dim myDiagram As Chartobject

Dans les lignes suivantes, vous définirez l’objet du diagramme, auquel vous octroyez la variable myDiagram.

Set myDiagram = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)

Les valeurs se trouvant entre pa­ren­thèses dé­fi­nis­sent la position ainsi que la taille du diagramme. Les deux premières données dé­fi­nis­sent les coor­don­nées du coin haut gauche, puis on trouve la hauteur et largeur. Lorsque vous exécutez la macro, Excel crée au­to­ma­ti­que­ment l’objet selon la position et taille définies. Toutefois, votre objet sera na­tu­rel­le­ment vide si vous n’avez encore entré aucune donnée.

Ensuite, il s’agit bien sûr d’octroyer des données pour votre objet diagramme, qui pourront ensuite être vi­sua­li­sées. Il s’agit dans un premier temps d’entrer les données puis d’adapter votre macro Excel, car cette dernière doit savoir ou les in­for­ma­tions né­ces­saires à sa bonne exécution peuvent être ré­cu­pé­rées. Grâce à la cons­truc­tion With … End With, vous in­tro­dui­sez de cette manière la méthode Set­Sour­ce­Data et spécifiez grâce à la valeur Selection que les données de toutes les cellules qui sont marquées doivent être prises en compte lors de l’exécution de la macro. Voici le code complet de la macro :

Sub AssortedTasks()
Dim myDiagram As ChartObject
Set myDiagram = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
With myDiagram
.Chart.SetSourceData Source := Selection
End With
End Sub

Pour test, entrez sim­ple­ment les valeurs 1 à 5 dans les cellules Excel A1 à A5 et exécutez la macro ; les données ap­pa­rais­sent alors sous forme de diagramme en bâtons. C’est en effet le type de graphique exécuté par défaut à partir du moment où vous n’avez pas configuré une commande ChartType.

Con­fi­gu­ra­tion d’une fenêtre de dialogue pour les données des uti­li­sa­teurs

Grâce aux macros, vous pouvez également mettre en place des masques de données, sur lesquels les uti­li­sa­teurs peuvent interagir. Pour mettre en place des fenêtres d’in­te­rac­tion, dont les données sont écrites au­to­ma­ti­que­ment dans des cellules définies, vous pouvez commencer par mettre en place et nommez une macro comme vu pré­cé­dem­ment. Dans notre exemple, nous la nommons « mas­que­de­sai­sie » et dé­fi­nis­sons la des­ti­na­tion de la su­brou­tine :

Sub masquedesaisie()
    ActiveSheet.Range("A1").Value = 
End Sub

La macro va alors s’assurer que l’entrée de l’uti­li­sa­teur ap­pa­raisse dans la cellule A1 de la feuille 1. Dans un deuxième temps, on va donc pouvoir définir la valeur du champ (Value). Nous avons décidé de prendre pour exemple la commande InputBox qui ressemble fortement à l’ins­truc­tion MsgBox qui in­ter­ve­nait dans la macro « Hello ». Grâce aux trois arguments ci-dessous, qui sont entre guil­le­mets dans le code VBA, une fenêtre dédiée pourra ap­pa­raître :

  • Prompt : cet argument permet de définir le texte de la fenêtre de dialogue qui aide l’uti­li­sa­teur lors de la saisie.
  • Title : l’argument « titre » présente la signature du masque de saisie.
  • Default : enfin vous pouvez définir une valeur par défaut.

Voici un exemple de code possible de macro « mas­que­de­sai­sie » :

Sub masquedesaisie()
    Table1.Range("A1").Value = InputBox("Please enter a value for the field A1.", "Title of the input form", "Value for field A1")
End Sub

En exécutant la macro Excel, la fenêtre de dialogue suivante apparaît :

Partage des macros Excel

Une fois la macro définie, vous pouvez l’utiliser sans problème dans d’autres classeurs Excel ou la partager avec d’autres uti­li­sa­teurs. L’éditeur VBA dispose à cette fin d’une fonction Import/Export, avec laquelle vous pouvez en­re­gis­trer les suites d’ins­truc­tions en format .bas puis intégrer les macros dans vos nouveaux classeurs Excel. Une condition néanmoins : il est né­ces­saire d’activer les macros dans votre nouveau document. En effet, les scripts pouvant contenir des codes dangereux pour la sécurité de votre système, Excel à instaurer par défaut un filtre de pro­tec­tion empêchant les macros d’être mises en place sans votre con­sen­te­ment. Les macros sans signature sont également bloquées. Si vous êtes sûr de votre source, vous pouvez autoriser les macros.

Vous pouvez choisir de con­fi­gu­rer l’ac­ti­va­tion ou la dé­sac­ti­va­tion des macros depuis le « Centre de gestion de la con­fi­den­tia­lité ». Pour cela, choi­sis­sez l’onglet « Fichier », puis « Option » et enfin « Centre de gestion de la con­fi­den­tia­lité » et cliquez sur le bouton « Paramètre du centre de gestion de la con­fi­den­tia­lité ». Vous trouverez un onglet « Pa­ra­mètres des macros » qui vous permettra de con­fi­gu­rer les pos­si­bi­li­tés énoncées.

Pour exporter une macro, ouvrez l’éditeur Visual Basic, cliquez dans la barre de menu sur « Fichier » puis « Exporter un fichier ». Donnez un nom pertinent a votre ensemble de macros, choi­sis­sez le ré­per­toire adapté et enfin validez l’en­re­gis­tre­ment de votre export avec « en­re­gis­trer ». Les données exportées ne sont pas lourdes (seulement quelques bytes) et peuvent donc être envoyées fa­ci­le­ment par mail ou être ins­tal­lées grâce à un support de stockage portable vers l’or­di­na­teur souhaité. Pour importer votre fichier macro, choi­sis­sez lo­gi­que­ment « Importer un fichier » et spécifiez ensuite l’em­pla­ce­ment.

Stockage en ligne HiDrive Next
Vos données ac­ces­sibles partout et à tout moment
  • Modifiez, partagez et stockez vos fichiers
  • Data centers européens certifiés ISO
  • Sécurité élevée des données, conforme au RGPD
Aller au menu principal