Si nous sommes actuellement ensemble, c’est certainement que vous avez entendu parler de VBA ou de macro Excel. Mais qu’est-ce qui se cache derrière ces noms et à quel moment peut-on les utiliser ? C’est ce que nous allons voir ensemble.
Dans un premier temps, nous allons définir ce qu'est le VBA et pourquoi nous en avons besoin. Puis, nous listerons quelques cas d’usage afin que vous puissiez vous projeter.
Découvrez le VBA
VBA par-ci, VBA par-là, mais c’est quoi ça le VBA et ça veut dire quoi ?
Vous avez totalement raison, commençons ensemble par une définition la plus simple possible. Le Visual Basic for Application, ou VBA, est un langage de programmation dérivé du Visual Basic (VB) créé par Microsoft en 1993. C’est donc un langage de programmation qui utilise un programme comme hôte.
VBA, VB, et maintenant hôte, qu’est-ce que c’est ?
Souvent, les langages de programmation s’utilisent sans application tierce. Le VBA c’est exactement l’inverse, il a toujours besoin d’une application pour fonctionner, d'où la notion d’Application dans Visual Basic for Application, et non tout simplement du Visual Basic.
Dans notre cas, l'application va être Excel, Word, Access ou Outlook (tous les logiciels de la suite Office permettent d'exécuter du VBA). C’est pourquoi quand nous entendons “VBA”, c’est souvent pour faire référence à une macro dans une application Office (macro Excel, par exemple).
Et encore un nouveau mot : que signifie “une macro Excel” ?
Une macro Excel, c’est simplement un morceau de code qui va s'exécuter pour faire des actions à notre place. La macro Excel, c’est simplement du code VBA.
Découvrez l'intérêt des macros VBA dans une application
Avant de commencer à parler du VBA et de détailler quelques cas d’usage, nous allons essayer de comprendre pourquoi nous en avons besoin.
Que ce soit à titre personnel ou professionnel, il arrive parfois de faire plusieurs fois les mêmes actions dans un projet. Et vous en conviendrez, cela a peu de valeur ajoutée de refaire toujours la même chose. Vous pourriez utiliser votre temps à faire autre chose. C’est pourquoi nous allons automatiser les tâches avec une macro Excel (donc du VBA).
Imaginons que vous êtes analyste dans une entreprise.
Tous les matins, après avoir pris votre café et être revenu à votre bureau, vous devez regarder les chiffres de vente de la veille. Tous les matins, vous devez faire les mêmes actions :
ajouter une nouvelle feuille ;
renommer cette feuille en “Data” ;
ouvrir le fichier Excel contenant les données ;
sélectionner la zone à copier dans le fichier puis copier les données ;
coller les informations dans la feuille Data que vous venez de créer ;
mettre en place un filtre sur la première ligne ;
trier des produits du plus grand au plus petit (pour voir les top produits vendus) ;
créer une mise en forme conditionnelle (sous la forme rouge, jaune et vert en fonction de la quantité de produits vendus) ;
enregistrer le fichier dans le dossier.
Pour faire cela, vous allez prendre 10 minutes tous les matins à réaliser ces différentes actions. Si vous écrivez une macro Excel en VBA, vous pouvez faire tout cela de façon automatique et en quelques secondes !
Voilà tout l'intérêt du VBA :
Fiabilité : La macro va exécuter le code tous les matins de la même façon. Que ce soit vous ou une autre personne qui exécute le code, le résultat sera toujours le même.
Gain de temps : Vous n’aurez plus à perdre 10 minutes tous les matins pour des actions répétitives, votre code le fera pour vous.
Rapidité d'exécution : La séquence d'exécution du code est bien plus rapide à faire une fois qu’elle est programmée. Il est assez fréquent que l’utilisateur passe plusieurs minutes à faire plusieurs actions, et que la macro réalise les mêmes actions en seulement quelques secondes.
Mais le VBA ne peut pas avoir que des avantages, il a quelques inconvénients tout de même :
Périmètre d’utilisation. C’est le principal frein du VBA : c’est un langage qui s’utilise principalement avec les logiciels de la suite Office. Il y a bien d’autres applications qui utilisent un peu de VBA, mais c’est à la marge.
L’apprentissage. Rapidement, l’enregistreur de macro ne suffit plus et il faudra passer par l’apprentissage du VBA pour améliorer le fonctionnement d’une macro (c’est pour cela que nous sommes ensemble aujourd’hui).
Il y a une bonne nouvelle supplémentaire, l’apprentissage du VBA va vous ouvrir les portes de la programmation. Tous les langages fonctionnent plus ou moins de la même façon. On retrouve dans tous les langages des variables, des boucles, des sous-programmes, des bibliothèques, des objets, etc. Ce n’est donc pas perdu, au contraire ! Vous allez commencer par un des langages les plus simples à apprendre.
Identifiez les cas d’usage de VBA
Maintenant que nous avons défini les différents concepts et l’utilisation que nous pouvons en faire, nous allons définir les cas d’usage du VBA. Quand allons-nous l’utiliser et dans quel but ?
Nous pouvons lister 4 principaux cas d’usage :
automatisation simple ;
traitement automatique ;
automatisation complète ;
ERP (Enterprise Resource Planning) professionnel complet.
Qu’est-ce que l’automatisation simple dans un fichier ?
Cela pourrait s’apparenter à la petite séquence que nous avons vue plus haut dans ce chapitre. Un utilisateur qui fait tous les jours différentes actions sur un fichier afin de faire une mise en forme, quelques copier-coller, un peu de nettoyage du fichier. Ce sont des actions simples mais récurrentes.
Vous commencerez souvent le VBA avec des macros qui permettent de faire une automatisation simple des différentes actions. Puis, quand vous êtes un peu plus à l’aise, on comprend tout l'intérêt d’aller plus loin dans l’automatisation. Vous passez donc à des traitements automatiques plus complexes, comme par exemple compiler plusieurs fichiers ensemble, faire du nettoyage des données, mettre à jour des reportings, créer des visualisations automatiquement, etc. Ce type de traitement est plus lourd et requiert de meilleures connaissances en VBA.
Puis quelques mois ou années plus tard, après avoir automatisé des traitements, vous commencez à vous dire que finalement vous pourriez aller encore plus loin. Au lieu de compiler des fichiers Excel, vous pourriez exécuter des requêtes SQL dans des bases de données, faire un nettoyage des données plus poussé, puis mettre à jour un reporting et faire une analyse que vous allez envoyer par e-mail automatiquement avec votre macro Excel. C’est ce que nous pouvons appeler une automatisation complète d’une tâche.
Mais en fait, on peut faire plein de choses avec le VBA ! Bientôt, tu vas finir par nous dire qu’on peut faire fonctionner une entreprise avec du VBA ?
Figurez-vous… que oui ! Il est tout à fait possible d’utiliser des macros VBA qui s'appuient sur la suite Office, pour fabriquer un petit ERP pour une entreprise. Il faut évaluer la cohérence entre notre projet et l'utilisation que l'on peut faire de cet outil. Cette solution est utilisée par certaines entreprises qui ont des besoins très spécifiques. Nous pourrions appeler cela un ERP d’entreprise. Avec, nous pourrions utiliser des macros Excel pour gérer la base de données clients via des formulaires par exemple, puis mettre à jour la base de données ou encore gérer la production d’une usine en fonction des besoins, des demandes des clients.
Vous seriez étonné de voir le nombre de grandes entreprises qui utilisent encore ce type d’outil pour des besoins spécifiques.
En résumé
Le VBA est un langage de programmation qui utilise une application comme hôte pour fonctionner.
Le VBA sert à automatiser des tâches récurrentes.
Il y a plusieurs niveaux d’automatisation en fonction de l’utilité.
Vous savez maintenant ce qu’est le langage de programmation VBA et à quoi il sert. Suivez-moi dans le prochain chapitre pour faire votre première macro dans Excel !