Macros et code VBA : automatisez des traitements à faible valeur ajoutée
 
 
L’automatisation de tâches répétitives est une étape déterminante pour optimiser les activités d’une entreprise, société ou organisation.
  • Avez-vous des tâches chronophages et sans valeur ajoutée sur Excel ?
  • Devez-vous faire de la mise en forme, de la structuration de données chaque matin, rechercher quotidiennement certains chiffres puis les enregistrer dans un autre onglet ?
 
2 outils dans Excel peuvent vous permettre d’automatiser ces traitements à faible valeur ajoutée :
 

 

Qu’est-ce que les macros et le code VBA ?

« Une macro est une action ou un ensemble d’actions que vous pouvez exécuter autant de fois que vous le souhaitez. Lorsque vous créez une macro, vous enregistrez vos clics de souris et vos frappes de touche » (définition Windows).
 
Dans les faits, la définition de Windows est trop restrictive. En effet, une macro peut servir à faire de simples copier-coller, de la mise en forme, mais aussi à faire des calculs plus ou moins complexes, automatiser des tâches répétitives ou encore faire des contrôles de cohérence, etc.
 
Le tout repose sur une base d’algorithmes. Par ailleurs, avoir une bonne logique et du recul sur les tâches que l’on souhaite réaliser est essentiel dans la mise en place de macro.

 

Dans quel cas puis-je faire une macro ?

Comme vu précédemment, la macro va exécuter et répéter des tâches qu’on lui a précédemment indiqué de suivre. Il faut alors juger si la situation se prête à la mise en place d’une macro.
 
Avant de connaître un bénéfice de production, qu’il soit en termes de temps ou de qualité de donnée, il faut prendre en considération le fait que le temps de création de la macro peut être significatif.
 
Ce temps de développement est à comparer avec la mise en place d’un développement via des formules Excel ou sur Power Query.
 
Voici les questions à se poser dans un premier temps:
 
 

Les risques de la macro !

C’est très en vogue d’utiliser une macro dans son fichier car cela peut être très pratique et permettre de vrais gains de temps. Mais vigilance, car le rêve peut tourner au cauchemar :
 
  • La macro n’effectuera jamais votre travail à votre place.
Elle a pour rôle de vous assister et de vous libérer dans les tâches sans valeur ajoutée.
 
  • Une macro mal configurée vous fera perdre plus de temps que le gain escompté.
​​​​​​​En effet, une macro peut dysfonctionner pour des raisons diverses (problème de format des plages de données, changement de nom d’onglet, bug…).
Le temps de maintenance d’une macro mal configurée ou mal conçue vous fera perdre plus de temps parfois, que de réaliser la tâche en question sans macro.
 
  • Une macro sans mise en place de contrôle de cohérence engendre de gros risques d’erreurs.
La machine ou du moins Excel n’a pas la faculté de réflexion et d’adaptation au changement que l’humain peut avoir.
La macro réalisera les tâches en fonction des instructions que nous lui avons indiquées.
Le recul et l’anticipation des changements sont importants de même que la complète compréhension de la macro mise en place.
 
  • S’il existe plusieurs solutions qui passent par de simples formules Excel qui peuvent répondre à votre besoin : les avez-vous étudiées ? 
Tous les besoins ne nécessitent pas une macro même si la tentation de réaliser une tâche en cliquant simplement sur un bouton est grande. Excel propose un grand nombre de solutions grâce à son large choix de formules.
De plus, associer les macros de petite taille avec des formules Excel assez évoluées peut créer une synergie très aboutie.

 

Comment créer une Macro ?

Pour créer une macro sur Excel, il existe trois possibilités :

Nous allons voir maintenant plus en détails les différentes façons de coder avec les bonnes et les mauvaises pratiques :

 

Comment réaliser sa première Macro ?

Pour cette première newsletter sur VBA, nous allons travailler sur la méthode, soit les macros mises en place grâce à l’enregistreur Macro.
Comme vu précédemment l’enregistreur va uniquement enregistrer une suite d’actions que vous allez réaliser, ni plus ni moins.
 
 

Etape 1

On accède à l’enregistreur de macro par le module « développeur » dans Excel. Si ce module n’est pas présent dans votre bandeau Excel, il suffit de l’ajouter à partir des options Excel :

Etape 2

On lance l’enregistreur de macro puis on réalise les tâches prévues à l’avance sans aucune autre tâche qui interfère.
 
Pour une bonne réalisation de macro via enregistreur il est fortement conseillé de jouer plusieurs fois le scénario avant de lancer l’enregistreur de macro.
Cela va vous permettre de ne pas avoir à recommencer plusieurs fois, de ne pas ajouter des actions parasites mais aussi d’avoir le recul suffisant pour bien inclure toute la suite d’actions dans le bon ordre.
 
 

Etape 3

Une fois l’enregistrement de macro lancé, nous avons l’interface ci-dessous qui apparaît.
 
 
Nom de la macro :
On vient ici donner un nom à la macro : c’est important de la nommer surtout si on a plusieurs macros. Il convient de la nommer par sa fonctionnalité (ici ma macro s’appelle « BONJOUR »).
Dans le cas où la macro n’est pas nommée, elle s’appellera par défaut « Macro1 », puis « Macro2 », etc.
 
 
Touche de raccourci :
On peut choisir un raccourci clavier qui nous permet de lancer la macro (j’ai choisi le raccourci « Ctrl+Shift+B). Le raccourci peut s’avérer pratique pour lancer rapidement la Macro.
 
 
Enregistrer la macro sous :
Le lieu d’enregistrement correspond au classeur Excel dans lequel est enregistrée la macro. Dans cet exemple, j’ai choisi de l’enregistrer dans le classeur Excel sur lequel je travaille.
Il est possible que la macro soit enregistrée dans un autre classeur, dans ce cas, pour lancer la macro les deux classeurs doivent être ouverts en même temps.
Il est par ailleurs possible de lancer une macro dans un fichier Excel ne contenant pas de macro si le fichier portant la macro est ouvert en même temps.
 
 
Description :
La description permet de donner des indications sur les fonctionnalités de la macro, elle peut être utile quand elle est utilisée par plusieurs collaborateurs (ici ma macro va me servir à écrire « BONJOUR » dans la cellule A1).
 
 
Quand je vais cliquer sur « OK », l’enregistrement de mes actions clavier et clic souris commence.
Une fois l’enchaînement des actions terminé, on clique sur « Arrêter l’enregistrement ».
 
 
La macro est créée, pour la lancer, 3 possibilités :
  • Le raccourci enregistré lors de la création
  • Insérer un bouton auquel on affecte la macro
  • Ou enfin à partir de la fonction Macro de l’onglet développeur.
 
Voilà le code généré par l’enregistreur de macro :
 
 

Conclusion

Pour résumer, les macros sont des enregistreurs de tâches sur Excel, elles vont exécuter un certain nombre de tâches à votre place, autant de fois que vous le souhaitez pour de la mise en forme de la recopie de donnée.
 
Vous allez pouvoir vous lancer dans vos premières macros !
 
Mais la contrainte de l’enregistreur qui vous fournit une macro très statique (elle n’exécute que les tâches que vous lui avez indiquées par vos clique bouton), vous limitera à de simples mises en forme et autres copier-coller répétitifs.
 
L’autre contrainte est celle du format des données : si celui-ci change, la macro ne changera pas, il faudra créer une nouvelle macro.
 
Prenons l’exemple d’une simple recopie de balance. Si vous avez une balance extraite sous un certain format et que vous souhaitez supprimer deux colonnes et la recopier dans un second onglet. Le premier mois votre balance fait 30 lignes, vous créez une macro sur cette base. Si, le mois suivant, vous avez 5 nouveaux comptes, la macro n’effectuera le traitement que sur 30 lignes.
 
Nous verrons prochainement les possibilités qu’offre le niveau intermédiaire avec utilisation de l’enregistreur couplé avec quelques ajouts de lignes de codes simples qui rendent la macro plus dynamique.

 

N’hésitez pas à nous contacter par email ou via notre site internet si vous avez besoin d’un accompagnement pour implanter ou vous former sur le langage VBA dans votre organisation.