VBA or not VBA ? Macro or not Macro ?

VBA or not VBA ? Macro or not Macro ?

Ces deux questions sont totalement synonymes. Tout au long de cet article, le terme VBA sera utilisé. Sachez toutefois que j’aurais pu écrire cet article avec le terme Macro à la place sans changer une virgule.

A quoi sert le VBA ?

Qu’est-ce que le VBA ?

VBA signifie “Visual Basic for Application”. C’est un langage de programmation allégé. La version complète étant le VB.Net.

Le VBA permet d’automatiser toutes les actions que vous faites manuellement au sein des applications Office.

Prenons un exemple. Tous les mois, vous recevez des données dans plusieurs fichiers Excel différents. Puis, vous les fusionnez en suivant toujours les mêmes étapes de nettoyage des données.

Dans cette situation, il serait intéressant d’enregistrer la suite des actions que vous réalisez afin de pouvoir les reproduire automatiquement. C’est exactement à cela que sert le VBA. Pour être plus précis encore, le terme Macro désigne la fonction qui a été enregistrée et qui pourra être reproduite. Le VBA désigne le langage de programmation qui permet d’écrire les fonctions.

Commence-t-on par les macros ou le VBA ?

Pour les plus rôdés d’entre vous, la réponse est “peu importe”. Pour les autres, je vous recommande de débuter avec la fonction d’enregistrement des actions (“enregistrer une macro” dans Word et Excel).

Pour accéder à cette fonction, il faut préalablement activer le ruban “Développeur”. Un clic droit sur le menu Accueil puis “Personnaliser le ruban” (idem dans Word, Excel, PowerPoint, Outlook – Fonction inexistante dans OneNote).

Personnaliser le ruban

Puis cochez la case du menu “Développeur” pour l’afficher :

Personnaliser le ruban - Afficher le ruban Developpeur

Vous aurez ensuite la possibilité d’accéder à la fonction “Enregistrer une macro” (uniquement Word et Excel). Pour les autres logiciels, pas d’enregistreur des actions manuelles ; il vous faudra écrire le code vous-même.

Menu developpeur - Enregistrement des macros

Et si cela ne fonctionne pas comme prévu ?

C’est à ce moment qu’il faut souvent passer par la case “Visual Basic” ou encore “Macros” >> “Editer” pour arriver dans le code qui a été produit automatiquement et le corriger manuellement.

Donc le VBA n’est là que pour automatiser des actions manuelles ?

Il serait totalement injuste de s’arrêter à cela ! En effet, à partir du moment où il est possible d’accéder à un langage de programmation, on peut faire bien plus que cela.

Il devient possible d’ajouter des composants tels que des boutons, des menus déroulants ou encore des nouvelles fenêtres pour interagir avec l’utilisateur… On rentre totalement dans le développement logiciel. On peut presque tout faire ! A condition d’apprendre à faire du développement.

Bon nombre de sites se sont spécialisés pour développer des applications complètes avec Excel en particulier.

Les feuilles de calcul sont utilisées pour sauvegarder les données et le reste n’est qu’une série d’interface avec des menus déroulants, des boutons, des listes qui ont été ajoutés afin de mettre à jour les données. Comme n’importe quelle application qui utiliserait une base de données.

Alors pour ou contre le VBA ?

Je ne tournerai pas autour du pot. Je suis personnellement un véritable puriste d’Excel, Word, etc.

Le purisme

Pourquoi ? Pourquoi être un puriste lorsque tant de possibilités s’ouvrent à nous ? De nombreuses raisons se bousculent à la porte pour justifier cela, faisons le tour de chacune d’elles.

Comme les macros sont surtout répandues dans l’utilisation d’Excel, je vais me focaliser sur l’utilisation des macros avec Excel uniquement.

La première raison : la richesse d’Excel

Tout au long de ma carrière, j’ai pu constater qu’Excel est certainement le plus beau produit que je connaisse à ce jour. Je n’ai pas trouvé un problème qui ne puisse être résolu avec l’ensemble des fonctionnalités (hors macros et VBA) déjà disponibles dans Excel.

Même s’il m’a parfois été nécessaire de réfléchirlonguement et tourner le problème dans tous les sens, avant de finir par trouver un moyen de passer mon chemin en ayant évité le pire (= les macros).

La deuxième raison : la tranquillité de transmettre les fichiers

Eh oui, qui dit Macro, dit programmation, dit “Je peux tout faire” mais aussi “Faire n’importe quoi”. Comprenez, je peux programmer des actions malveillantes ! Et ce, de bonne foi, ou de mauvaise foi.

Par exemple, avec les macros, on peut modifier des fichiers qui se trouvent sur notre ordinateur, mais aussi sur les dossiers partagés de mon entreprise. Je peux interagir avec toutes les fonctions de mon ordinateur, mais aussi avec les équipements connectés à mon ordinateur.

C’est pour cette raison que dans les entreprises, les macros sont naturellement bloquées par défaut. Et elles peuvent être bloquées de différentes manières : interdiction de les exécuter ou interdiction de les transmettre par mail (quand je vous parlais de la peste…! Winking smile).

Depuis la version 2007, Microsoft a adopté des formats de fichiers distinctifs pour savoir si un fichier est porteur ou non d’une macro. On retrouvera la lettre “m” à la fin de l’extension “.xlsm”, “.docm”, “.pptm”.

La troisième raison : si je ne peux pas le faire avec les fonctions standards, c’est que ce n’est pas le bon produit !

Pourquoi vouloir développer une application avec un langage qui est limité (VBA et non VB.Net !) ? Si j’ai besoin d’une application, alors autant en développer une ! J’aurai de toute façon besoin des mêmes compétences, mais au moins je ne serai pas limité par les fonctionnalités du langage à disposition.

Mais mes données sont dans Excel/Word/…, alors c’est plus simple d’interagir avec, non ?

Eh bien non ! Depuis 2008, le format OpenXML (format qui compose les fichiers Office) est une norme internationale. C’est à dire qu’on peut accéder au contenu sans utiliser les produits de Microsoft. Et pas seulement y accéder… On peut aussi créer, modifier des documents Office sans obligation de passer par les produits de Microsoft.

N’importe quel langage de programmation me permet alors d’accéder, comme mes macros, au contenu des fichiers Office, de les modifier, etc. Et surtout : les fichiers restent “propres”, sans macros, sans risque et sont donc transmissibles partout.

La quatrième raison : la recrudescence des virus dans les macros

Les pirates informatiques l’ont bien compris : les macros sont des applications qui passent plus facilement les barrières des entreprises ! Alors ils programment leur virus avec et les transmettent aux entreprises et aux particuliers. Le mot macro devient synonyme de risque.

Il n’y a pas de règles sans exception…

Pour une utilisation limitée, personnelle, très spécifique ou si vous savez qu’il n’y a pas d’autres solutions, alors on peut les utiliser, évidemment. L’un de mes articles en fera même la démonstration pour un cas non résolu : le changement de la langue dans une présentation PowerPoint. Je n’ai pas trouvé d’autre solution que de vous proposer d’utiliser une macro !

Partager l'article
  •  
  •  
  •  
  •  

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.