Ce 4ème chapitre du cours "VBA: Droit au but" vous expliquera tout ce que vous devriez savoir à propos de l'éditeur de code VBA intégré dans Excel et les autres applications de la suite Microsoft Office. Comment le VBE ("Visual Basic Editor") fonctionne, comment l'utiliser de manière efficace, comment tester votre code et bien plus encore…
Sommaire
- Aperçu général de l'éditeur de code VBA
- Fenêtres principales dans VBE
- Lancer le code VBA dans l'éditeur
- Interrompre l'exécution du code VBA dans l'éditeur
- Commentaires dans le code VBA
- Les raccourcis clavier disponibles dans VBE
- Travailler de manière efficace dans l'éditeur de code VBA
- Quelques truc et astuces pour maîtriser l'éditeur VBA
- Conclusion du Chapitre 4
Le chapitre est assez long, même si je vais uniquement à l'essentiel, mais j'ai essayé de le structurer au mieux pour une lecture facile. Et avec la table de matières, vous trouverez facilement où vous en étiez si vous ne savez pas tout lire d'un coup.
Aperçu général de l'éditeur de code VBA
Pour ouvrir l'éditeur VBA à partir d'Excel, vous avez deux possibilités principales:
- Utiliser le raccourci clavier Excel
Alt + F11
(sachez que ce raccourci va ouvrir l'éditeur VBA également dans las autres applications de la suite Office) - Aller dans l'onglet "Développeur" et cliquer sur l'icône "Visual Basic"
Vous ouvrez alors le VBE proprement dit. L'avantage de l'éditeur VBA est qu'il est intégré dans les applications de la suite Office. Vous ne devez rien acheter, rien installer, vous n'avez qu'à le lancer et l'utiliser…
Lors de la première utilisation, vous verrez la configuration par défaut que vous pourrez ensuite modifier et personnaliser (selon vos préférences et besoins). C'est l'affichage dans la cas où le fichier Excel ne contient aucun code VBA.
Si le fichier contient déjà du code VBA, vous verrez le VBE de manière suivante:
Comme vous pouvez le constater, la fenêtre de l'éditeur est divisée en plusieurs parties. Et ce ne sont que les trois parties de base. D'autres parties intéressantes peuvent être affichées par la suite. Dans la section suivante, on va voir quelle partie sert à quoi et comment afficher les autres.
Fenêtres principales dans VBE
Maintenant que l'éditeur est ouvert, vous pouvez voir les différentes fenêtres de la configuration de base. Ce sont ces parties-là que vous verrez d'office si vous ne personnalisez pas votre éditeur.
Et voici lest explications sur ces différentes fenêtres.
Ceci est la classique de la plupart des logiciels Windows qui vous donne accès à différents menus et sous-menus du VBE (ceux que vous utiliserez le plus sont soulignés):
- Fichier: comme d'habitude – sauvegarde, import, export, impression
- Édition: les commandes habituelles (copier, coller,…) mais aussi des commandes qui vous permettent d'accéder aux propriétés de différentes parties du code VBA
- Affichage: possibilité d'afficher différentes fenêtres et barres d'outils de l'éditeur VBA
- Insertion: ici vous pouvez insérer des Modules, Module de classe, Formulaires et Procédures (je n'ai jamais utilisé cette manière d'ajouter une Procédure ou Fonction 🙂 ) Pas vraiment intéressant. Il y a des manières plus rapides d'insérer ces éléments.
- Format: format d'affichage du code VBA – par vraiment utile…
- Débogage: IMPORTANT! Ici vous trouverez différentes manières de compiler, tester et déboguer votre code
- Exécution: possibilité de lancer votre macro, de mettre une pause ou d'arrêter l'exécution. Pas intéressant car tout se trouve sur la barre d'outils principale – donc accès est plus direct et vous économiserez (beaucoup) de clicks…
- Outils: accès aux Références (voir chapitre 6.2 de ce cours VBA), à la liste des macros disponibles, les Propriétés du Projet (possibilité de protection par mot de passe) et aux Options de l'Éditeur VBA.
- Compléments: accès au Gestionnaire des compléments – il y a peu de chances que vous en aurez besoin
- "?" (Aide): rien à signaler… Sauf peut-être que vous devez être connecté sur internet pour accéder à l'Aide (qui vous amène sur cette page sur le site de Microsoft). Vous pouvez aussi lancer Aide avec la touche
F1
.
Vous y trouverez également les barres d'outils avec des icônes des actions les plus utilisées. À vous de voir comment vous organiser. Je vous conseille de garder la barre principale (nommée "Standard" qui contient les boutons les plus importants) et d'ajouter la barre "Edition" qui rendra votre travail avec le code VBA plus efficace.
Partie 2: le "Explorateur de projets"
Cette fenêtre vous permets de "naviguer" entre les différentes parties d'un projet et aussi entre différents projets si vous en avez plusieurs d'ouverts en même temps.
Pour rappel: La notion du "Projet" et de sa structure a déjà été abordée dans la section "Où placer le code VBA dans votre Projet" du Chapitre 3.
Sachez que, dans cette fenêtre, vous pouvez utiliser les icônes et pour dérouler ou réduire les différentes "catégories" et ainsi rendre la fenêtre plus lisible.
C'est aussi via cette fenêtre que vous pouvez facilement accéder aux propriétés du Projet (click droit sur le nom du projet en gras, ensuite "Propriétés de XXXX…") où vous pouvez, entre autre protéger votre code par un mot de passe (voir la section "Truc et astuces pour maîtriser l'éditeur VBA" en bas de cette page).
Partie 3: "Fenêtre Propriétés"
Ceci est également une fenêtre bien utile. Elle est particulière dans le sens où son contenu varie selon l'objet sélectionné dans la fenêtre "Explorateur de projets" ou dans un formulaire.
C'est dans cette fenêtre que vous pouvez, entre autres, changer le nom d'un module (voir plus loin dans ce tutoriel) ou encore choisir la visibilité d'une Feuille.
Sachez que même si votre éditeur VBA est en français (si vous utilisez Office en français), la fenêtre "Propriétés" est en anglais! C'est assez logique car comme vous le savez déjà, VBA est "en anglais" – l'éditeur est traduit en français pour une utilisation plus agréable mais il s'agit uniquement de l'interface. Comme les noms de propriétés des objets ainsi que leur contenu sont en anglais dans le code VBA, vous les trouverez en anglais également dans cette fenêtre.
Et voici quelques exemples de ce que vous pourrez retrouver dans la fenêtre des propriétés…
UserForm
) sachez que cette fenêtre vous sera tout à fait indispensable!Partie 4: "Fenêtre Code"
Et voici la fenêtre "code" – c'est là que vous allez passe la plus grande partie de votre temps de création des macros VBA.
En gros, il ne s'agit de rien de spectaculaire – c'est un fait un éditeur de texte. Avec des fonctionnalités supplémentaires mais éditeur de texte tout de même 🙂
Comme vous pouvez le constater, les différentes parties de la syntaxe ont des couleurs différentes pour une lecture plus facile. Vous verrez plus loin qu'il est possible de customiser ces couleurs.
Ce qu'il y a à savoir sur la fenêtre "Code" du VBE:
- l'éditeur ne fait pas de retours à la ligne automatiquement. Comme le code VBA est exécuté ligne par ligne, c'est assez logique. Si pour une meilleure lisibilité vous souhaitez continuer une instruction VBA sur une nouvelle ligne, c'est possible (voir le mode d'emploi)
- si vous avez un nombre important de macros dans un module, vous pouvez utiliser le menu déroulant à droite pour accéder directement au code d'une macro particulière.
Autres fenêtres disponibles
En plus des fenêtres principales que j'ai décrites ci-dessus, le VBE propose d'autres fenêtres qui peuvent s'avérer très utiles lors du développement en VBA. Voici quelques-unes de ces fenêtres et leur utilité :
- Fenêtre "Variables locales" : Cette fenêtre affiche la liste de toutes les variables actuellement en mémoire, leur type et leur valeur. Elle est particulièrement utile lors du débogage pour surveiller l'état des variables au fur et à mesure de l'exécution du code.
- Fenêtre "Espion" : Elle vous permet de surveiller des variables spécifiques ou des expressions pendant le débogage. Vous pouvez ajouter des variables ou des expressions à cette fenêtre pour voir comment leurs valeurs évoluent.
- Fenêtre "Exécution" : Cette fenêtre vous permet d'exécuter des lignes de code VBA à la volée. Vous pouvez y taper une instruction et appuyer sur Entrée pour l'exécuter immédiatement. C'est très pratique pour tester rapidement une ligne de code sans avoir à l'intégrer dans une macro.
- Fenêtre "Liste des erreurs" : Elle affiche les erreurs de compilation détectées dans votre code, facilitant ainsi leur correction.
Pour afficher ces fenêtres, vous pouvez aller dans le menu Affichage et sélectionner la fenêtre souhaitée, ou utiliser les raccourcis clavier associés.
Lancer le code VBA dans l'éditeur
Pour exécuter votre code VBA à partir de l'éditeur VBE, vous avez plusieurs options :
- Utiliser le bouton « Exécuter » : Dans la barre d'outils standard du VBE, cliquez sur le bouton en forme de triangle vert (similaire au symbole « Lecture »). Cela lancera l'exécution de la macro ou de la procédure où se trouve votre curseur.
- Appuyer sur la touche
F5
: Le raccourci clavierF5
permet également de lancer l'exécution de votre code. - Utiliser le menu « Exécution » : Dans la barre de menus, allez dans Exécution puis cliquez sur Exécuter Sub/UserForm.
Avant de lancer votre code, assurez-vous que le curseur se trouve à l'intérieur de la procédure que vous souhaitez exécuter. Si vous avez plusieurs macros dans le même module, cela garantit que la bonne macro sera lancée.
Sachez également que vous pouvez exécuter le code "ligne par ligne" avec la touche F8
. C'est extrêmement utile lors du débogage de votre code…
Interrompre l'exécution du code VBA dans l'éditeur
Pendant la phase de développement ou pendant le débogage, vous aurez souvent besoin de voir le comportement de votre macro à un endroit précis du code. Il vous faudra alors interrompre l'exécution du code sans pour autant l'arrêter complètement.
Interrompre l'exécution a, en comparaison de l'arrêt de l'exécution, deux avantages principaux :
- Toutes les variables restent actives et vous pouvez donc voir leur contenu – cela facilite grandement la vérification si tout se passe comme souhaité.
- Il est possible de relancer le code à partir de l'endroit où il a été interrompu. Vous pouvez donc interrompre l'exécution, faire vos vérifications (et des éventuelles modifications) et ensuite poursuivre l'exécution.
Pour interrompre l'exécution, il existe deux méthodes fiables et une « de secours » mais dont la fiabilité n'est pas suffisante.
Instruction Stop
L'instruction Stop est un moyen simple d'interrompre volontairement l'exécution de votre code à un point précis. Pour l'utiliser, il vous suffit d'insérer l'instruction Stop
à l'endroit où vous souhaitez que l'exécution s'interrompe.
Exemple :
1 2 3 4 5 |
Sub MaMacro() ' Votre code ici Stop ' Le code après l'instruction Stop ne sera pas exécuté tant que vous ne le reprendrez pas End Sub |
Lorsque l'exécution atteint l'instruction Stop
, le VBE passe en mode pause. Vous pouvez alors examiner les valeurs des variables, parcourir le code pas à pas, ou continuer l'exécution en appuyant sur F5
.
Point d'arrêt
Les points d'arrêt sont un outil puissant pour déboguer votre code. Ils vous permettent de suspendre l'exécution du code à une ligne spécifique sans avoir à modifier votre code en y insérant des instructions Stop
.
Pour ajouter un point d'arrêt :
- Cliquez dans la marge de gauche de la fenêtre de code, en face de la ligne où vous souhaitez placer le point d'arrêt. Une pastille rouge apparaîtra pour indiquer le point d'arrêt.
- Utilisez le raccourci clavier
F9
: placez votre curseur sur la ligne souhaitée et appuyez surF9
. - Utilisez le menu : sélectionnez la ligne, puis allez dans Débogage > Basculer un point d'arrêt.
Lorsque l'exécution atteint un point d'arrêt, elle s'interrompt automatiquement. Vous pouvez alors examiner les variables, exécuter le code pas à pas ou continuer l'exécution en appuyant sur F5
.
Pour supprimer un point d'arrêt, il suffit de répéter l'une des actions ci-dessus sur la ligne concernée.
Esc, Esc, Esc,…
Ceci n'est pas vraiment une solution à recommander mais parfois on n'a plus d'autres options : si l'exécution est lancée et il n'y a rien de prévu pour l'interrompre, vous pouvez toujours appuyer sur la touche Échap
(Esc
). Cela interrompt l'exécution. Cela peut vous sauver si vous lancez un script par erreur et que vous devez absolument l'arrêter.
Il s'agit de la « solution de la dernière chance » pour trois raisons principales :
- Cette solution n'est pas toujours fiable. Parfois, le code continue simplement de tourner…
- Vous ne savez pas à l'avance où exactement l'exécution va s'arrêter. Si vous avez de la chance (voir le point 1), elle s'arrêtera. Il ne faut pas en espérer plus.
- Si l'exécution n'a pas l'air de vouloir s'arrêter, vous pouvez toujours essayer de continuer à appuyer (et relâcher) la touche
Esc
jusqu'à ce que cela s'arrête enfin.
Même si expliqué ainsi, cette solution n'a pas l'air très avenante, sachez qu'un jour ou l'autre, vous passerez par là. (si si, je vous assure 🙂 ) Alors autant la connaître !
Commentaires dans le code VBA
Commenter le code informatique est une des pratiques les plus importantes dans la vie d'un développeur. Et cela dans n'importe quelle langue de programmation, VBA n'étant pas une exception. Les commentaires vous seront utiles notamment dans 3 situations:
- Pour créer des notes personnelles, des rappels et des explications concernant votre code, notamment si vous êtes seul(e) à travailler sur ce code. Cela permet aussi de se souvenir plus facilement si on reprend un code qui date. Même si c'est votre code personnel, pensez aussi à celui qui, un jour, pourrait "hériter de votre travail".
- Pour aider les autres si vous êtes plusieurs à travailler sur un projet.
- Pour désactiver une partie du code. Ce qui peut être TRÈS UTILE lors des tests!
En VBA, chaque marquer un commentaire se fait à l'aide de l'apostrophe ' . Celui-ci marque le début du commentaire. Et est considéré comme commentaire tout ce qui suit l'apostrophe jusqu'à la fin de la ligne. Ainsi, il n'est pas nécessaire (ni possible) de marquer la fin de votre commentaire par un caractère particulier.
Le commentaire peut prendre toute la ligne ou une partie de la ligne mais ne peut pas être suivi d'un code fonctionnel sur la même ligne.
En VBA, il n'y a pas de "bloc de commentaires". Donc si vous voulez faire un commentaire sur plusieurs lignes, vous devez simplement commencer chaque ligne par un paragraphe.
Voici des exemples de commentaires en VBA:
1 2 3 4 5 6 7 8 9 |
'ceci est un commentaire sur la ligne entière x = 1 y = 2 'ceci est un commentaire sur la même ligne que le code 'et enfin ceci est le commentaire 'sur plusieurs lignes '>>> chaque ligne commence par un apostrophe '---------------- FIN ----------------------- |
Les raccourcis clavier disponibles dans VBE
L'utilisation des raccourcis clavier peut considérablement accélérer votre travail dans le VBE. Voici une liste des raccourcis les plus utiles :
- F5 : Exécuter la macro ou la procédure en cours.
- F8 : Exécuter le code pas à pas (mode pas à pas).
- Shift + F8 : Exécuter le code en pas à pas sortant (sortir de la procédure actuelle).
- Ctrl + Break : Arrêter l'exécution du code en cours.
- F9 : Basculer un point d'arrêt sur la ligne sélectionnée.
- Ctrl + G : Afficher la fenêtre Exécution.
- Ctrl + F : Ouvrir la fenêtre de recherche.
- Ctrl + H : Ouvrir la fenêtre de remplacement.
- Ctrl + Espace : Afficher l'auto-complétion (IntelliSense) pour le code.
- Tabulation : Indenter le code.
- Maj + Tabulation : Désindenter le code.
- Ctrl + S : Sauvegarder le projet VBA.
- Ctrl + Z : Annuler la dernière action.
- Ctrl + Y : Rétablir la dernière action annulée.
- Shift + F2 : Aller à la définition de la variable ou de la procédure.
- Ctrl + Shift + F2 : Retourner à l'emplacement précédent après un Shift + F2.
Ces raccourcis vous aideront à naviguer plus rapidement dans votre code, à le déboguer et à le modifier de manière plus efficace.
Travailler de manière efficace dans l'éditeur de code VBA
Dans cette section, je vais partager avec vous quelques astuces pour améliorer votre productivité lors du développement en VBA.
Option Explicit
L'instruction Option Explicit
est une bonne pratique qui vous oblige à déclarer toutes vos variables avant de les utiliser. En l'ajoutant en haut de vos modules, vous évitez les erreurs liées à des fautes de frappe dans les noms de variables ou à des variables non initialisées.
Pour activer automatiquement Option Explicit dans tous vos nouveaux modules :
- Dans le VBE, allez dans le menu Outils puis sélectionnez Options.
- Dans l'onglet Éditeur, cochez la case Déclaration des variables obligatoires.
- Cliquez sur OK.
Désormais, chaque nouveau module que vous créerez inclura automatiquement l'instruction Option Explicit
en haut du code.
Compilation du Projet VBA – "débogage"
La compilation de votre projet vous permet de vérifier s'il contient des erreurs de syntaxe ou de déclaration de variables avant même de l'exécuter.
Pour compiler votre projet :
- Dans le VBE, allez dans le menu Débogage.
- Sélectionnez Compiler VBAProject.
Si des erreurs sont détectées, elles seront signalées, et vous pourrez les corriger immédiatement. La compilation régulière de votre code est une bonne pratique pour assurer sa fiabilité.
"Aller à la définition"
Lorsque vous travaillez avec de nombreuses fonctions, procédures ou variables, il peut être utile de naviguer rapidement vers leur définition.
Pour accéder à la définition d'une variable, d'une fonction ou d'une procédure :
- Placez le curseur sur le nom de l'élément.
- Appuyez sur Shift + F2.
- … Ou bien click droit sur l'élément et ensuite "Définition"
Le VBE vous amènera directement à l'endroit où l'élément est défini. Pour revenir à votre emplacement précédent, appuyez sur Ctrl + Shift + F2.
Commenter / Ne pas commenter un bloc de code
Pendant le développement ou le débogage, vous pouvez avoir besoin de commenter ou décommenter rapidement des blocs de code.
Pour commenter un bloc de code :
- Sélectionnez les lignes de code concernées.
- Cliquez sur le bouton Commenter le bloc dans la barre d'outils Édition. Ce bouton représente un symbole d'apostrophe avec un rectangle.
Pour décommenter un bloc de code :
- Sélectionnez les lignes de code concernées.
- Cliquez sur le bouton Décommenter le bloc dans la barre d'outils Édition.
Si vous ne voyez pas ces boutons, vous pouvez afficher la barre d'outils Édition en allant dans le menu Affichage > Barres d'outils > Édition.
Rechercher / Remplacer une partie du code
Le VBE offre des fonctionnalités de recherche et de remplacement pour vous aider à modifier rapidement votre code:
- Pour ouvrir la fenêtre de recherche, appuyez sur Ctrl + F. Vous pouvez rechercher un mot ou une expression dans le module actuel.
- Pour ouvrir la fenêtre de remplacement, appuyez sur Ctrl + H. Cela vous permet de remplacer un mot ou une expression par un autre dans votre code.
Dans les options de recherche, vous pouvez choisir la portée de la recherche (module courant, projet entier), la sensibilité à la casse, et d'autres critères pour affiner vos résultats.
Quelques truc et astuces pour maîtriser l'éditeur VBA
Comme j'utilise VBA de manière intensive depuis des années, je me permets d'attirer votre attention sur quelques points qui peuvent rendre votre travail avec VBA et VBE plus agréable, rapide et efficace. En tout cas pour moi c'est le cas. Je tiens donc à partager cette liste non-exhaustive avec vous…
Export / import du code VBA
Il est assez facile de stocker ou partager le code VBA. Vu qu'il s'agit d'un "simple texte", vous pouvez tout simplement le sauvegarder dans un fichier texte, l'envoyer par email ou l'afficher sur une page internet. Mais pour être encore plus efficients, sachez qu'il existe la possibilité d'exporter (et également d'importer) le code VBA. Les avantages principaux sont:
- la rapidité d'import/export: vous ne devez pas copier/coller le code et lors de l'importation, le Module qui contient le code est créé automatiquement – vous n'avez donc pas besoin de créer de nouveaux Modules manuellement
- consistence: si vous travaillez avec VBA de manière plus intensive, l'avantage du stockage et de l'importation du code est que vous exportez / importez des Modules entiers, leur noms inclus. Si vous avez donc un Module que vous voulez réutiliser dans plusieurs Projets (par exemple:
GestionDesUtilisateurs
) à chaque import, le Module conservera son nom ce qui rend les projets plus faciles à gérer et à entretenir. - export / import des Formulaires VBA: c'est ici que cela devient intéressant! La même méthode d'export que pour les Modules peut être utilisée pour les Formulaires. L'avantage majeur – le formulaire est exporté tel quel (contenant tous les objets, tout le formatage, l'emplacement des objets, le code VBA de chaque objet,…). Pour le réutiliser, il suffit donc de l'importer et vous ne devez rien changer.
- utilisation par des utilisateurs non familiers avec VBA: il arrive parfois qu'un utilisateur qui ne s'y connaît pas bien en VBA doit modifier un Projet ou que vous devez dépanner un tel utilisateur. Il est beaucoup plus facile de lui demander d' "importer un fichier" que de "créer un Module, changer son nom, y copier/coller une code qui vient d'un fichier texte,…"). C'est un détail mais qui peut tout de même rendre le travail plus efficace…
Vous trouverez tout sur l'export / import du code VBA dans le tutoriel: VBA: importer et exporter le code VBA
Personnaliser l'aspect de l'éditeur VBA
Pour vous faciliter le travail avec l'éditeur VBA, sachez qu'il est possible de modifier son apparence. Vous pouvez modifier les couleurs (du fond, de différentes parties du code,…) et changer le type et la taille de la police utilisée.
Cela peut être très pratique si vous travaillez la nuit (vous pouvez alors vous créer un "mode nuit" avec le fond noir pour ne pas être éblouis) ou si vous avez des soucis avec votre vue (vous pouvez agrandir le texte selon vos besoins).
Toutes les informations sont disponibles dans le tutoriel: Changer les couleurs de l’éditeur VBA (VBE)
Protéger le code VBA par un mot de passe
Si vous souhaitez protéger votre code VBA contre des modifications faites par l'utilisateur ou si vous voulez empêcher l'utilisateur de voir le code, c'est tout à fait possible.
Vous pouvez consulter un tutoriel dédié à ce sujet: VBA: Comment protéger le code VBA par un mot de passe
Vous y trouverez comment faire, ainsi que les informations sur les avantages et les désavantage qui découlent de la protection du code VBA par un mot de passe.
Conclusion du Chapitre 4
Et c'est ici que se termine le chapitre dédié à votre principal outil de travail avec VBA: l'éditeur VBE. Comme vous avez pu le constater, il s'agit d'un outil certes âgé et qui ne dispose pas des fonctionnalités dernier cri mais qui fait son job. Il ne s'agit pas d'un éditeur multi-langue ce qui a pour l'avantage que vous ne serez pas inondés par des options, des menus, des configurations. Il est fait pour faire du VBA et c'est ce qu'il fait bien. De plus, il fait partie de l'installation Excel donc il est disponible par défaut sur chaque machine avec Excel. Et ça, c'est un grand plus…
J'espère que grâce à ce tutoriel, vous pourrez travailler avec VBA de manière efficace et agréable et que le développement en VBA sera pour vous une partie de plaisir.
Alors, prêts pour le chapitre suivant?
4. "VBE" – l'éditeur de code VBA
Commentaire sur “Cours VBA: 4. “VBE” – l’éditeur de code VBA”
Excellent! Merci