Vous avez des tâches récurrentes sur Excel ou même sur un fichier Word où vous faites plusieurs fois la même chose, tous les jours ? Imaginez que vous puissiez les automatiser, imaginez le temps gagner sur ces tâches pendant que l’ordinateur travaille pour vous, imaginez également les erreurs potentielles évitées. Et bien ceci est possible avec VBA avec juste un peu d’entraînement.
VBA ? C’est quoi ce machin là ?
VBA est l’acronyme de Visual Basic for Application. Ce langage de programmation est intégré aux outils de la suite Office comme Excel, Word et PowerPoint. Il permet d’exécuter différentes tâches de manière automatique via des lignes de commandes. Si une action est répétée un nombre conséquent de fois, de manière structurée, elle pourra alors être complètement automatisée.
De mon point de vue, la puissance de VBA réside dans le couplage avec les différents outils Microsoft. Ceux-ci nécessitent une licence bien entendu mais sont largement répandus dans le monde du travail. Le développement d’application avec VBA reste simple et flexible. Une fois la logique intégrée, les grandes fonctions utiles en tête, vous pourrez très rapidement développer vos propres outils. Certains moyens comme l’enregistrement de macro permettent d’aller également plus vite. En effet, cet outil permet d’enregistrer toutes les actions que vous ferez et ainsi récupérer les lignes de code correspondantes. Les limites de VBA seront atteintes si la quantité d’informations traitées devient trop grandes ou si le nombre de fonctions appelées dépasse un certain seuil. Si vous atteignez ces limites, soit il y a une erreur dans votre code (ça m’arrive souvent aussi, pas de panique) soit votre programme devient sérieux et VBA n’est peut-être plus le meilleur outil.
Pour créer un script en VBA, vous aurez d’abord besoin d’acquérir quelques connaissances en algorithmiques et sur les types de variables qui peuvent être utilisées. Rien de bien sorcier, juste un petit un peu de gymnastique neuronale :). Une fois les bases acquises avec les différentes structures types en tête, vous pourrez commencer à créer vos premiers scripts. Dans un premier temps, vous irez souvent chercher si une fonction existe pour réaliser telle tâche mais au fur et à mesure vous les connaitrez. Pas de besoin de toutes les connaitre par cœur mais au moins savoir qu’elles existent. Pour la synthase, Internet est ton ami. Je présenterai dans un futur article les différentes structures les plus utilisées avec des exemples concrets.
Aussi, il est possible d’enregistrer des macros. Cela permet de récupérer des lignes de code facilement. Attention toutefois à la syntaxe, certaines lignes écrites automatiquement ne servent à rien et seront à supprimer mais cela peut vous aider pour connaitre le nom des fonctions à utiliser ou les arguments à renseigner.
En conclusion, avec quelques bases, l’enregistreur de macro, vous pourrez déjà créer vos propres outils. Ne perdez pas à l’esprit que tout ce que vous faites manuellement pourrait être automatisé. Cela va du remplissage de valeur à la mise en forme (couleur, taille de caractère, bordure de cellule et j’en passe). Soyez créatifs !
Comment automatiser avec VBA ?
Si vous êtes déjà familier avec Excel, VBA vous permet d’utiliser toute la puissance d’Excel tout en automatisant tous vos processus. Par exemple, si vous récupérez un bilan financier en format texte ou CSV (fichier texte formaté où les colonnes sont séparées par des virgules), vous pouvez créer une macro qui lira tout seul ce fichier et remplira les cases à l’endroit de votre choix. L’idéal est d’avoir préparé son fichier en avance pour qu’ensuite tous les calculs se fassent automatiquement.
Un autre atout non négligeable avec cet outil est la création d’interface utilisateur. Elle est certes très sobre (pour ne pas dire moche) mais sa mise en place est très efficace. Vous pourrez également la personnaliser via l’insertion d’image par exemple. Personnellement, je trouve que la construction de ces interfaces reste simple et efficace à mettre en place. Il sera ensuite possible d’attribuer des actions à chaque évènement de l’interface (clic sur un bouton, mise à jour d’une valeur dans un champ, …).
Je vous parlais de l’interface avec Excel. Il sera alors possible de combiner les fonctionnalités d’Excel (formules, tableaux, …) avec une gestion automatique des données. Cela peut faire gagner énormément de temps si par exemple vous avez chaque mois à remplir les mêmes valeurs dans les mêmes cellules. En structurant un petit peu les données, tout cela pourra se faire alors en une fraction de seconde (ça fait rêver mais je vous assure que c’est possible). Sur Excel, j’ai déjà créé des interfaces qui permettent de rentrer facilement certaines valeurs et ce de manière conviviale et une fois que tout est validé, les calculs s’opèrent automatiquement.
VBA avec Word et PowerPoint
Vous pouvez également développer des scripts VBA avec Word et PowerPoint. Pour un projet il y a quelques années, nous devions produire plusieurs rapports, organisés de la même manière, mais avec les valeurs qui correspondaient à des situations différentes. Les données étaient générées par un outil qui nous avions déjà développé, leur structure était donc la même tout le temps. Nous avons alors utilisé cela pour faire un outil qui rédigeait automatiquement tous nos rapports en mettant à jour les valeurs à partir des fichiers de données. La toute première fois où nous avons rédigé les rapports de A à Z, nous avions 3 personnes à temps plein pendant une semaine. Avec l’outil, une demi-journée suffisait. Nous avons alors mis notre énergie sur des actions avec plus de valeur ajoutée et de développer notre savoir-faire.
Un des gros avantage de ce langage est qu’il existe une tonne d’information sur internet. Outre ce blog qui vous expliquera merveilleusement bien comment coder 🙂 voici quelques sites que j’utilise également :
- https://learn.microsoft.com/fr-fr/office/vba/api/overview/language-reference qui est la référence Microsoft pour avoir le détail de chaque fonction
- https://www.developpez.com/ qui est un forum de référence en la matière de programmation.
Pourquoi VBA a changé ma vie ?
Aujourd’hui, dès que je m’aperçois que je fais des tâches répétitives, je me pose la question si la tâche est automatisable. Souvent, en organisant un peu les fichiers, les données etc…, c’est faisable. Je vous invite à faire l’exercice de votre côté. Réfléchissez à votre journée et à ce qui est redondant. Je suis certain que vous aurez des tonnes d’idées. Attention toutefois à ne pas vouloir automatiser à outrance.
Développer un outil VBA prend du temps mais si la tâche est bien ciblée, que vous la réaliser plusieurs fois par jour, le jeu en vaut la chandelle. Au début vous aurez une charge un peu plus importante mais une fois en place, je peux vous assurer que vous ne regretterez pas d’avoir fait cet effort. Est-ce que dans votre service vous vous êtes toujours dit qu’il faudrait un outil pour faire ceci ou cela ? Vous pourrez vous proposer pour le faire. Vos collègues vous diront merci.
J’espère avoir attisé votre curiosité. N’hésitez pas à laisser un commentaire.
A bientôt, Benjamin