📊 Programmation en VBA
VBA signifie Visual Basic for Applications. C'est le langage intégré à Microsoft Office (Excel, Word, Access…) qui permet d'automatiser des tâches, créer des macros et développer des outils personnalisés.
Un document contenant des scripts en VBA doit être enregistré au format Classeur Excel (prenant en charge les macros) (format .xlsm).
Pour commencer à utiliser VBA dans Excel, il est nécessaire d'activer l'onglet Développeur :
- Ouvrez Excel.
- Cliquez sur Fichier → Options.
- Dans le menu de gauche, sélectionnez Personnaliser le ruban.
- Dans la colonne de droite, cochez la case Développeur puis cliquez sur OK.

Une fois l'onglet Développeur visible, vous pouvez accéder à l'éditeur VBA :
- Cliquez sur Développeur → Visual Basic pour ouvrir l'éditeur VBA.
La vue ci-dessous vous montre comment se présente votre interface Virtual Basic avec:
- En Bleu : Les différents projets VBA (1 projet VBA = 1 fichier Excel ou AddOn Excel).
- En Orange : Un module, une page de texte où l'on va écrire les Script (=liste d'instructions à donner à l'ordinateur).

Les projets VBA
Un VBAProject est l'objet regroupant les différents éléments d'un fichier Excel. Il est généralement composé de:
- Un objet ThisWorkbook qui représente le classeur Excel
- Un ou plusieurs objets "Feuilx" ou "Sheetx" représentant les feuilles présente dans votre tableaur
- Un ou plusieurs module qui vont contenir les scripts

Les modules VBA
Un module est un conteneur de code qui permet de regrouper des macros (subroutines) et des fonctions. C’est l’endroit principal où l’on écrit le code VBA destiné à être exécuté manuellement ou appelé depuis d’autres procédures.
Pour créer un module :
- Dans l’éditeur VBA, cliquez sur Insertion → Module.
- Un nouveau module apparaît dans l’arborescence du projet (ex : Module1).
- Vous pouvez renommer le module via la fenêtre Propriétés.
Les subroutines et fonctions écrites dans un module sont accessibles depuis :
- Le menu Macros d’Excel.
- D’autres procédures VBA.
- Des boutons ou des raccourcis clavier.
Exemple simple d'une macro VBA
Sub Test()
MsgBox "Bonjour"
End Sub
Cette macro, placée dans un module, va afficher une fenêtre avec le message "Bonjour" lorsqu’elle est exécutée.
Pourquoi écrire le code dans des modules et non dans Feuil ou ThisWorkbook ?
Dans un projet VBA, on trouve plusieurs types d’objets :
- Les modules standards
- Les objets FeuilX (feuilles Excel)
- ThisWorkbook (le classeur lui-même)
Les objets FeuilX et ThisWorkbook sont principalement destinés à contenir du code événementiel. Ce sont des procédures qui se déclenchent automatiquement suite à une action précise.
Exemples d’événements :
- Ouverture du classeur (
Workbook_Open) - Modification d’une cellule (
Worksheet_Change) - Activation d’une feuille
À l’inverse, les modules standards servent à :
- Écrire des macros exécutées manuellement
- Créer des fonctions réutilisables
- Centraliser le code pour une meilleure lisibilité
- Faciliter la maintenance et la réutilisation du code
Bonne pratique :
- Le code qui réagit à un événement → FeuilX ou ThisWorkbook
- Le code général (macros, calculs, traitements) → Modules
De plus, les macros placées dans un module sont directement visibles dans la liste des macros Excel, ce qui n’est pas le cas pour celles écrites dans Feuil ou ThisWorkbook.