Macros Excel : comment optimiser ses processus de travail

Si vous travaillez régulièrement avec des programmes de traitement de données, des systèmes de bases de données, ou des applications de tableur, alors vous savez combien il peut être fatigant de répéter encore et toujours les mêmes instructions. Les processus en particulier longs et complexes mettent nos nerfs à l’épreuve. Heureusement, il existe ce que l’on appelle les macros (raccourci de macro-instructions) qui permettent d’enregistrer une suite de commandes afin qu’elle puisse être automatiquement exécutée par un simple clic à l’instant voulu. Bien que les macros soient écrites en programme informatique, aucune connaissance dans ce domaine n’est en principe nécessaire. De nombreux programmes, parmi lesquels Excel, peuvent en effet enregistrer des macros simples et aider à les mettre en place facilement. Pour Microsoft Excel, les macros constituent l’une des caractéristiques les plus importantes du logiciel de tableur.

Excel avec Office 365 et 1&1 IONOS !

Inclus dans tous les packs Office 365, utilisez Excel pour organiser vos données et gagner du temps. Á partir de seulement 4€ HT/mois !

Office en ligne
OneDrive avec 1TB
Assistance 24/7

Qu’est-ce qu’une macro Excel ?

Microsoft Excel fait partie des solutions les plus populaires pour traiter, analyser et présenter des données. Les utilisateurs Windows travaillent 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 calendrier. Excel est largement sollicité dans les entreprises grâce à ses possibilités de représentations graphiques qui permettent 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 simplifier les mises en page. En se familiarisant avec le programme, de nombreuses possibilités s’offrent à vous. Toutefois, force est de constater qu’il devient rapidement éreintant de répéter constamment 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 chronophages.

Il n’est pas illégitime de considé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 Applications (VBA) intégré au programme Excel mais aussi Word, PowerPoint, Access et Outlook. Ce langage simplifie leur installation et permet ainsi simplement d’exécuter des suites de commandes automatiquement ou même d’ajouter de nouvelles fonctions au tableur (comme des algorithmes pour les analyses de données).

Comment fonctionnent les macros Excel ?

Excel présente les différents éléments de son interface sous forme d’objets hiérarchisés. Ces derniers comportent des méthodes et des propriétés. Tous les objets disponibles sont donc en lien les uns avec les autres grâce à des modèles hiérarchisés. En définissant des propriétés et en faisant appel à une méthode, vous traitez vos diffé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é « ActiveSheet », elle représente la feuille qui est alors active dans le classeur.

Par ailleurs, à l’aide de collections, c’est-à-dire d’objets de même nature (le nom de la collection 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 collection « Worksheets » prennent effet par exemple dans une macro qui donne des indications 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éé individuellement
  • Raccourcis claviers personnalisés

Les avantages des macros Excel

Renoncer à mettre en place des macros (que ce soit volontaire ou involontaire) n’a pas obligatoirement 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 incontestable que les techniques de macros représentent d’énormes avantages pour tirer le meilleur profit du tableur.

  • Les macros réduisent le nombre d’erreurs : à chaque nouvelle instruction entrée manuellement sur Excel, un risque nouveau de faire une erreur existe. Ceci est le cas particulièrement pour les suites d’opérations complexes qui se répètent ; les erreurs apparaissent rapidement et bloquent malheureusement souvent l’ensemble du processus. Installer des macros permet donc de contourner ce risque : en effet, si cette dernière a bien été configurée, tout utilisateur pourra l’utiliser à répétition sans provoquer de blocage.
  • Les macros font gagner du temps : créer une macro nécessite juste une seule configuration. 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 élargissent les fonctions d’Excel : avec le VBA, il est possible non seulement de programmer des macros qui regroupent des ordres, mais aussi de développer de nouvelles fonctions. Ainsi, vous pouvez aller au-delà des fonctions intégrées et simplifier considérablement vos opérations.

Comment créer sa propre macro Excel ?

Afin de mettre en place sa propre suite d’instructions, il est nécessaire d’activer tout d’abord l’éditeur VBA qui fait partie intégrante de l’outil Développeur. En principe, l’onglet Développeur n’est pas accessible directement 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éveloppeur »

Choisissez l’onglet « Fichier » puis « Options ». Ensuite sous « Personnaliser le ruban », vous trouverez une liste déroulante dans laquelle vous pouvez cocher la case « Développeur ».

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écessaire de mettre en place un nouveau classeur Excel qui pourra enregistrer les macros comme base. Pour cela, cliquez sur l’onglet « Développeur » que vous venez de configurer, puis sur « macros ». Attribuez dans « nom de macro » le nom du nouveau classeur (nous choisirons ici « Hello »). Validez en cliquant sur « Créer ». L’éditeur VBA s’ouvre avec le code suivant :

Sub correspond ici à Subroutine, 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

Enregistrez le résultat en format .xlsm, retournez dans l’interface de programme Excel, sélectionnez le bouton « Macros » et choisissez la macro « Hello » dans la liste. En cliquant sur « exécuter », une petite fenêtre d’information apparaît avec le texte défini préalablement :

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

Etape 3 : créer un raccourci pour la macro

Dans l’onglet « Développeur » comme dans l’onglet « Affichage », vous pouvez retrouver vos macros (le bouton « Macros » est disponible dans les deux onglets) et les exécuter. Si vous avez besoin d’utiliser fréquemment vos macros, il sera toutefois judicieux de créer un accès rapide en définissant un bouton comme raccourci depuis la liste de symbole. Pour cela, il est nécessaire 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. Choisissez dans le menu déroulant la catégorie « Macros » puis cherchez votre macro nouvellement créée « Hello ».

4. Sélectionnez-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électionnez le symbole qui fera figure de raccourci en cliquant sur « modifier ».

Votre symbole correspondant à la macro « Hello » se trouve maintenant dans les raccourcis de votre fichier, aux côtés des symboles « enregistrer », « retour » et « repérer » :

Notes : Vous pouvez aussi configurer un raccourci clavier en vous rendant sur : « Développeur » -> « Macros » -> « Options ».

Etape 4 : utiliser la macro enregistré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 connaissances en programmation. Les fonctions intégrées pour enregistrer des macros vous donnent une large palette de possibilités. Par exemple, on peut mettre en place une macro qui rebaptise automatiquement une feuille de calcul. Pour cela, opérez comme suit :

1. Dans l’onglet « Développeur » puis le groupe de commandes « Code », choisissez l’option « Enregistrer une macro ».

2. Dans la fenêtre de dialogue, donner à la macro le nom « RenameWorksheets » 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’enregistrement ».

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

Sur les quatre premières lignes de code qui commencent par une apostrophe (sous la ligne « Sub »), on trouve des lignes de commentaires. Elles n’ont aucun impact sur les fonctionnalités de la macro et servent avant tout à bien comprendre le code. Les lignes de commentaires peuvent être provisoirement désactivé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électionner 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 complètement retravaillées ressemblent au code ci-dessous :

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

Revenez à l’interface d’Excel et rebaptisez votre feuille « Feuil1 ». Exécutez pour test la macro RenameWorksheets : le nom doit alors se modifier automatiquement. Faites attention à adapter maintenant votre macro à votre nouveau nom, pour pouvoir l’exécuter de nouveau.

Les macros Excel en pratique : diagrammes et masques de saisie

Les scripts VBA permettent d’automatiser différentes instructions Excel. Grâce aux enregistrements, vous pouvez non seulement essayer de simplifier vos processus de travail mais aussi d’acquérir des connaissances sur le langage de programmation. 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 paragraphes précédents les processus généraux pour mettre en place une macro, les deux exemples suivants vont vous permettre de comprendre concrètement la diversité des possibilités à disposition pour automatiser vos commandes.

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

Une fonction très courante dans l’utilisation des tableaux Excel est la visualisation 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 « AssortedTasks » 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 parenthèses définissent la position ainsi que la taille du diagramme. Les deux premières données définissent les coordonnées du coin haut gauche, puis on trouve la hauteur et largeur. Lorsque vous exécutez la macro, Excel crée automatiquement l’objet selon la position et taille définies. Toutefois, votre objet sera naturellement 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 visualisé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 informations nécessaires à sa bonne exécution peuvent être récupérées. Grâce à la construction With … End With, vous introduisez de cette manière la méthode SetSourceData 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 simplement les valeurs 1 à 5 dans les cellules Excel A1 à A5 et exécutez la macro ; les données apparaissent 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.

Configuration d’une fenêtre de dialogue pour les données des utilisateurs

Grâce aux macros, vous pouvez également mettre en place des masques de données, sur lesquels les utilisateurs peuvent interagir. Pour mettre en place des fenêtres d’interaction, dont les données sont écrites automatiquement dans des cellules définies, vous pouvez commencer par mettre en place et nommez une macro comme vu précédemment. Dans notre exemple, nous la nommons « masquedesaisie » et définissons la destination de la subroutine :

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

La macro va alors s’assurer que l’entrée de l’utilisateur apparaisse 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’instruction MsgBox qui intervenait dans la macro « Hello ». Grâce aux trois arguments ci-dessous, qui sont entre guillemets dans le code VBA, une fenêtre dédiée pourra apparaître :

  • Prompt : cet argument permet de définir le texte de la fenêtre de dialogue qui aide l’utilisateur 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 « masquedesaisie » :

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 utilisateurs. L’éditeur VBA dispose à cette fin d’une fonction Import/Export, avec laquelle vous pouvez enregistrer les suites d’instructions en format .bas puis intégrer les macros dans vos nouveaux classeurs Excel. Une condition néanmoins : il est nécessaire 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 protection empêchant les macros d’être mises en place sans votre consentement. 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 configurer l’activation ou la désactivation des macros depuis le « Centre de gestion de la confidentialité ». Pour cela, choisissez l’onglet « Fichier », puis « Option » et enfin « Centre de gestion de la confidentialité » et cliquez sur le bouton « Paramètre du centre de gestion de la confidentialité ». Vous trouverez un onglet « Paramètres des macros » qui vous permettra de configurer les possibilité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, choisissez le répertoire adapté et enfin validez l’enregistrement de votre export avec « enregistrer ». Les données exportées ne sont pas lourdes (seulement quelques bytes) et peuvent donc être envoyées facilement par mail ou être installées grâce à un support de stockage portable vers l’ordinateur souhaité. Pour importer votre fichier macro, choisissez logiquement « Importer un fichier » et spécifiez ensuite l’emplacement.