L’article suivant se veut une réponse d’un consultant en informatique, qui me demandait : “Pourquoi l’utilisation des macros dans Excel n’est pas plus répandue”. D’abord, il faut préciser que lorsqu’on parle de macros, de nombreux usagers d’Excel ne savent tout simplement pas de quoi il s’agit ou alors, ils croient à tort que les macros se limitent aux possibilités offertes par l’enregistreur de macros (qui enregistre une série d’actions et peut la répéter sur demande) alors que les macros dans Excel sont supportées par un langage de programmation très riche, le VBA (Visual Basic for Applications). L’enregistreur de macros est facile à maîtriser par les usagers mais est limité en termes de bénéfices. La programmation VBA, quant à elle, est beaucoup plus difficile à apprendre mais ouvre aussi beaucoup plus de possibilités.
Enregistreur de macros
Éditeur de code VBA
Questionnement sur l’utilisation des macros dans Excel
Un consultant informatique m’a fait parvenir un courriel qui ressemblait à un cri de désespoir, dont voici l’essentiel du message:
J’exerce une activité en consultance informatique. L’essentiel de mon travail est consacré à l’implémentation de logiciels de gestion. Il m’arrive aussi de développer de petits programmes sur mesure en VBA. Il s’agit plutôt d’une activité complémentaire. Ce ne sont jamais de gros projets mais (presque) chaque fois que je les livre, les clients disent un « Ah ! Si j’avais su plus tôt qu’on pouvait faire ça ! ». Ça reste un mystère pour moi… Quel est le problème avec les développements en VBA ? Pourquoi cette technologie n’est pas plus répandue, plus connue ?Consultant informatique
Quelles sont les avantages de l’utilisation des macros dans Excel?
L’utilisation de macros VBA dans Excel, en entreprise, permet principalement de :
- Créer des formulaires pour l’entrée de données, comme par exemple :
- L’entrée de données pour des comptes de dépenses ;
- L’entrée de données pour la facturation ;
- Etc.
Ces données peuvent ensuite être compilées dans un base de données Excel, qui peut être analysée.
- Automatiser des tâches, comme par exemple :
- Consolider les informations entrées via des formulaires ;
- Importer des données de fichiers Excel externes dans le fichier actif ;
- Exporter des données du fichier Excel actif vers d’autres fichiers ;
- Modifier les données importées (optimiser le format et la structure) ;
- Envoyer des courriels à partir d’informations stockées dans des cellules du fichier Excel actif ;
- Etc.
Ces tâches peuvent être exécutées sur commande via un bouton ou alors selon certaines règles, comme à l’ouverture du fichier, par exemple.
- Appliquer des opérations à un ensemble de cellules du fichier, comme par exemple :
- Déterminer le format de données par défaut dans un tableau croisé dynamique ;
- Fixer la largeur des lignes et des colonnes du chiffrier ;
- Afficher/Masquer plusieurs feuilles en même temps ;
- Donner accès à une portion restreinte de cellules du fichier ;
- Etc.
Ces tâches seraient plus laborieuses ou impossibles à faire sans langage VBA.
Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation des données avec nos formations sur Power Query et Power Pivot dans Excel. |
---|
En somme, utiliser le langage VBA dans un fichier Excel permet de sauver énormément de temps et d’éviter des erreurs de manipulation.
Quels sont les freins des entreprises à l’adoption des macros dans Excel ?
Voici à mon avis, les principales raisons qui freinent l’adoption des macros en entreprise:
- Apprendre à programmer en langage VBA n’est pas simple. Il faut y investir beaucoup de temps et ce ne sont malheureusement pas tous les usagers qui ont le temps et/ou la volonté de se former de la sorte.
- Excel évolue constamment, ce qui peut affecter la performance de code rédigé dans le passé. Le passage d’une version Excel à une autre peut effectivement compromettre le comportement de certaines macros, ce qui décourage souvent les usagers d’en faire l’emploi.
- Il est pratiquement impossible de développer des macros qui pourront fonctionner dans tous les contextes sans exception, sans avoir testé à l’avance tous ces contextes. Il faut donc accepter le fait que les macros pourront, à l’occasion, entraîner des problèmes.
- Le code VBA ne peut pas être exécuté sur le web, via par exemple, Excel Online alors que nous sommes dans une ère où la majorité des programmes peuvent être exécutées en ligne.
- Ceux qui savent programmer en VBA ont tendance à développer des programmes peu documentés. Lorsqu’ils quittent l’entreprise ou lorsqu’ils sont absents, il est difficile de trouver des remplaçants pour assurer le bon fonctionnement des macros. Ceci place les entreprises dans des positions difficiles.
- Toutes ces raisons forcent souvent les entreprises à déléguer le développement de macros VBA à l’externe, ce qui peut nuire à leur autonomie et les placer dans une situation délicate.
Quelles sont les alternatives plus modernes aux macros dans Excel ?
Il existe désormais des alternatives pour plusieurs fonctionnalités qui pouvaient jadis être uniquement réalisées dans Excel par l’usage du langage VBA. L’avantage de ces alternatives repose notamment sur le fait qu’elles sont conçues à partir de technologies “low code” ou “no code”, ce qui en facilite grandement l’apprentissage et l’adoption.
Par exemple, pour créer des formulaires d’entrée de données et compiler automatiquement les résultats, on peut désormais avoir recours à différentes solutions comme :
- Power Apps, qui permet de créer des applications avec un minimum de code
- Formulaires Excel (Excel Forms), qui permettent de créer des formulaires pour l’entrée de données, accessibles en ligne et dont les résultats se cumulent dans des bases de données Excel
- Si ce sujet vous intéresse, inscrivez-vous à notre webinaire Excel comme solution d’entrée et d’analyse de données sur le sujet ou suivez notre formation Excel O365 : Bienvenue dans l’ère moderne.
Pour automatiser des tâches, Excel dispose maintenant de:
- Power Query, qui a l’avantage de pouvoir importer et transformer des données d’autres sources, sans ou avec un minimum de code
- Power Pivot, qui permet de faire parler entre elles différentes sources de données
- Power Automate, qui permet d’automatiser une séquence d’actions, sans faire intervenir de code
- Voyez, par exemple, dans l’article Programmer l’envoi de courriels personnalisés depuis Excel avec Power Automate comment utiliser Power Automate pour envoyer des courriels à partir d’informations stockées dans des bases de données Excel.
Ce faisant, les usagers qui ne maîtrisent pas encore le langage VBA ont tendance à se tourner vers l’apprentissage de solutions plus modernes comme Power Query, Power Pivot, Power Apps, Power Automate et les formulaires Excel.
Formation complémentaire
Pour automatiser davantage vos tâches dans Excel, nous vous recommandons de suivre notre formation Excel – Introduction à Power Query et au langage M.
Voici quelques commentaires d’apprenants ayant suivi la formation en ligne Excel – Introduction à Power Query et au langage M:
Bonjour
Concernant les freins à l’utilisation de la programmation VBA dans une solution Excel, je voudrais ajouter deux arguments.
En premier, une bonne structuration de la solution tableur associée à une bonne utilisation des fonctions et fonctionnalités de base permettent de réduire notablement le nombre de cas où une mécanisation par programmation apporte un avantage : séparation données/traitements/résultats, utilisation des TCD, de power-pivot etc… Viser la simplicité et la clarté de la solution tableur est un gage d’efficacité.
En second, la programmation (par un tiers) me parait tout à fait antinomique avec le concept d’origine du tableur : donner le pouvoir de concevoir des solutions informatiques à l’utilisateur, en toute autonomie, sans dépendre du programmeur, et sans apprentissage technique lourd.
Même si je construis des solutions plus lourdes et plus sophistiquées qu’au temps de mes premiers tableaux Visicalc, je continue de penser qu’une solution tableur doit rester simple à construire, à expliquer, à vérifier, à partager, à mémoriser, à modifier…
Ce qui exclut la programmation… sauf quelques petites macros enregistrées pour les opérations simples et répétitives (sélection, impression…).
Merci pour vos messages, ils sont toujours passionnants.
Jacques-Henry