VBE: l'éditeur VBA

Sur cette page

Vue d'ensemble

Modifications essentielles à l'interface

L'explorateur de projets (sauvegardes)

Fenêtre Propriétés

Fenêtre Code

Fenêtre Exécution

Fenêtre variables locales

Fenêtre Espions

Fenêtre Recherche (Aide)

Aide VBA en ligne

Aide VBA locale

Raccourcis

Compléter le mot

Organiser l'affichage

Enregistrer un projet VBA

Déboguer

Sommaire

Fichier exemples

Déclarations, types et références

Expressions et assignations

Tests et branchements

Boucles

Gestion d'erreur

Collections et tableaux

Dialogues et formulaires

Objets et événements Excel

Conseils de programmation

Liste d'instructions

Vue d'ensemble

Avant d'explorer les composantes de l'éditeur VBE, vous devez l'afficher:

 

De plus, assurez-vous d'afficher les fenêtres optionnelles:

 

Finalement, affichez les barres d'outils optionnelles:

 

L'environnement de développement VBE comporte plusieurs zones:

Le tableau ci-dessous explique les éléments qu'on retrouve à l'écran.
Utilisez le menu Affichage pour afficher les éléments absents de votre affichage.

1) Menus Les choix les plus fréquemment utilisés sont dans les menus Insertion et Débogage.
2) Explorateur de projets Sert à choisir ce qui est affiché dans la fenêtre de code (9) et dans l'explorateur d'objets (3).
3) Explorateur d'objets Permet de consulter et modifier les propriétés de l'objet sélectionné dans l'explorateur de projets (2).
4) Barres d'outils Il est recommandé d'afficher toutes les barres d'outils optionnelles.
5) Bouton Démarrer/Continuer Sert à démarrer l'exécution continue du code sélectionné dans la fenêtre de code (9).
6) Bouton Arrêter Sert à arrêter l'exécution du code VBA en cours.
7) Bouton commenter Sert à désactiver (mettre en commentaire) le bloc de code sélectionné dans la fenêtre Code (9).
8) Bouton ne pas commenter Sert à réactiver (enlever commentaire) le bloc de code sélectionné dans la fenêtre Code.
9) Fenêtre Code OU
    Fenêtre Formulaire
Affiche le code VBA OU les objets de formulaire de l'objet sélectionné dans l'explorateur de projets (2).
10) Nom du module affiché Liste déroulante permettant de passer d'un objet du projet à un autre sans passer par l'explorateur de projets (2).
11) Option Explicit Instruction que l'on doit retrouver au début de chaque module et qui force la déclaration explicite des variables.
12) Marge de la fenêtre Code Contient des repères visuels lors du développement d'un programme VBA.
13) Fenêtre Exécution  
14) Fenêtre Variables locales  
15) Fenêtre Espions  

Modifications essentielles à l'interface

Pour modifier l'interface VBE selon ces conseils:

    Modifier l'interface VBE

L'explorateur de projets (sauvegardes)

L'explorateur de projets permet de naviguer dans les différents endroits pouvant contenir du code VBA Excel,
c'est à dire les différents emplacements où il vous est possible de sauvegarder le code que vous allez écrire.

Vos choix:

  • Un classeur Excel: le code VBA est sauvegardé avec le classeur. Si vous copiez le classeur, il est copié avec. Si vous supprimez le classeur, il est supprimé.
  • Le classeur de macros personnelles: le code VBA est sauvegardé dans le classeur personal.xlsb de l'ordinateur, ET NON DANS LE CLASSEUR ACTIF. Comme personal.xlsb est automatiquement chargé lors du démarrage d'Excel sur un ordinateur, les programmes VBA sauvegardés dans le classeur personal.xlsb de cet ordinateur sont disponibles dans tous les classeurs ouverts sur ce même ordinateur. Ce choix est utile aux programmeurs expérimentés et aux administrateurs de parcs d'ordinateurs. Il est fortement déconseillé aux programmeurs amateurs.

Dans un classeur Excel, vous devez choisir un des endroits suivants:

  • Une feuille de ce classeur. Cet emplacement est fortement déconseillé. Les programmes qui y sont cachés seront difficles à retrouver plus tard.
  • Le classeur lui-même (ThisWorkbook). Il est utilisé pour enregistrer les programmes déclenchés par des événements de classeur (ouverture, fermeture, modification de cellule...).
  • Un module. Il est utilisé pour enregistrer les programmes utilisés dans le classeur ou par les autres programmes du classeur.
  • Un formulaire. Il est utilisé pour enregistrer les programmes déclenchés par les événements du formulaire.

Tous ces emplacements peuvent contenir du code VBA Excel.

En pratique, vous utiliserez le plus souvent les endroits suivants:

Explorateur d'objets (fenêtre Propriétés)

L'explorateur d'objets sert principalement:

Fenêtre Code ou fenêtre Formulaire

C'est dans cette fenêtre qu'on crée/édite le code VBA.

1) Entête Affiche le nom de l'emplacement (classeur, feuille de classeur, module, formulaire) contenant le code affiché. L'emplacement est choisi dans l'explorateur de projets.
2) Zone objet Objets disponibles dans le contexte du conteneur choisi dans l'explorateur de projets.
3) Zone procédures/
événements
Liste de toutes les procédures du module (en gras) et des procédures événementielles (en pâle) possibles de l'objet choisi dans la zone objet (2).
4) Marge de la fenêtre code Contient des repères visuels lors du développement d'un programme VBA: les points d'arrêt.
5) Affichage Procédure/module Boutons permettant de basculer entre l'affichage d'une seule procédure et l'affichage de toutes les procédures du module.
6) Éditeur de code Éditeur de texte permettant de créer/éditer des procédures SUB ou des procédures Function.
7) Barre de fractionnement Permet de diviser la fenêtre de code en deux parties horizontales pour afficher simultanément deux parties d'un même module.

La fenêtre code offre les fonctionnalités d'éditeur habituelles pour créer/éditer du code VBA. Il y existe aussi quelques fonctionnalités additionnelles:

D'autres raccourcis sont disponibles.

Fenêtre Exécution

Cette fenêtre permet d'exécuter une ligne de code VBA en dehors d'un module.

Par exemple, taper
    ? fnMoyenneAvecCellulesNulles(Range("A1..B5")
exécute la fonction personnalisée fnMoyenneAvecCellulesNulles et en affiche le résultat.

    ? Range("A1")
affichera la valeur de la cellule A1.

Modérément utile pour tester des instructions. Si vous n'utilisez pas cette fonctionnalité, vous devriez effacer cette fenêtre.

Fenêtre variables locales

Cette fenêtre affiche la liste des variables locales du module en cours d'exécution (mode débogage) et permet d'en connaître la valeur et le type.

Cette fenêtre est très utile pour déboguer les programmes.

Fenêtre Espions

Cette fenêtre affiche la valeur de variables choisies, en mode débogage. À la différence de la Fenêtre variables locales, il est possible de s'y faire
afficher la valeur de n'importe quelle variable, locale ou non.

Modérément utile pour déboguer les programmes. Vous pourriez effacer cette fenêtre.

Aide VBA en ligne

Dans Office, il n'est plus possible d'accéder à l'aide locale.

On peut accéder à l'aide VBA en ligne de 2 façons:

L'aide VBA tente d'identifier le sujet sur lequel vous souhaitez de l'aide et d'afficher l'aide correspondante.

 

Il est aussi possible de consulter la référence de Microsoft sur le langage VBA lui-même, à l'adresse:

https://msdn.microsoft.com/fr-ca/vba/vba-language-reference

Aide VBA Locale

Quelques fichiers d'aide VBA sont disponibles en suivant les instructions d'installation suivantes:

 

   Installer l'Aide VBA locale

 

Vous y trouverez en particulier

 

Vous pouvez aussi (et surtout!) utiliser l'onglet recherche pour obtenir de l'aide sur un objet Excel:

Raccourcis utiles en VBE

+active Compléter mot.

affiche la fenêtre code.

affiche l'explorateur d'objets.

+ procédure suivante.

+ écran suivant.

+, +, ... Les autres raccourcis habituels fonctionnent aussi.

ajoute/supprime un point d'arrêt.

++ supprime tous les points d'arrêt.

exécute la procédure active.

+ interrompre l'exécution d'un module. Si votre clavier ne comporte pas de touche Pause/Break, contactez le fabricant de l'ordinateur pour trouver la combinaison de touches équivalente ou utilisez un autre clavier. Cette touche est indispensable pour déboguer les programmes.

démarre le mode pas à pas.

+ exécute jusqu'au curseur.

+ enregistre le code VBA dans le classeur (mais n'enregistre pas le classeur!).

+ bascule entre Excel et VBE.

Compléter le mot

VBE offre une fonctionnalité qui complète un mot dont vous avez tapé les premières lettres.

Exemple: dans une procédure Sub tapez
Dim sNom as st
puis enfoncez les touches +

VBE affiche la liste des mots commençant par st qui sont valides dans le contexte.

Si vous tapez une lettre additionnelle (r), la liste se raffine.

Et si la liste ne comporte qu'une seule possibilité, VBE complète le mot automatiquement.

Tapez

Dim sPrénom as str

puis enfoncez les touches +

VBE complètera automatiquement

puisque String est le seul mot VBA commençant par Str qui est valide à cet endroit.

Dim sPrénom as String
 

Organiser l'affichage

Lorsque vous travaillez en VBA-Excel, vous travaillez en fait avec 2 logiciels, chacun affichant sa fenêtre.

Si vous disposez de 2 écrans, vous devriez afficher la fenêtre Excel dans un écran, la fenêtre VBE dans l'autre:

Si vous ne disposez que d'un seul écran, utilisez les touches

+pour placer une fenêtre à gauche et

+pour placer une fenêtre à droite:

 

Dans tous les cas, vous pouvez utiliser les touches + pour basculer d'une application à l'autre.

Enregistrer un projet VBE

Pour enregistrer votre projet VBA, cliquez la disquette de la barre de boutons

Ou la combinaison de touches +

Ou encore fermer la fenêtre, tout simplement.

Mais ATTENTION votre projet VBA n'est pas sauvegardé sur disque, mais est sauvegardé dans le classeur Excel.

VOUS DEVEZ SAUVEGARDER LE CLASSEUR EXCEL POUR QUE VOTRE PROJET VBA SOIT SAUVEGARDÉ.

Enregistrer un classeur Excel contenant une macro VBA

Déboguer

Un programmeur passe la grande majorité de son temps à tester et à déboguer du code. Il est donc essentiel de maîtriser les techniques de débogage ci-dessous.

VBE fournit un menu et une barre de boutons pour suivre l'exécution d'un programme VBA en mode pas à pas. De plus, la fenêtre Variables locale permet de suivre les valeurs des variables. Finalement, On peut suivre dans Excel les changements que le programme VBA apporte au clsseur.

 

Les principales techniques de débogage sont illustrées dans le document suivant:

    Déboguer un programme VBA

 

Sommaire

L'environnement d'édition VBA (Visual Basic Editor) offre plusieurs fonctionnalités pour faciliter la rédaction de programmes VBA. Les principales sont:

Pour sauvegarder un projet VBA Excel, il faut sauvegarder LE CLASSEUR Excel qui le contient.

 

Dans cette section nous avons présenté les modes d'emploi suivants:

Modifier l'interface VBE

Installer l'Aide VBA locale

Déboguer un programme VBA

Enregistrer un classeur Excel contenant une macro VBA

Fichier exemples.

Le fichier Excel Tutoriel Exemples VBE.xlsm contient l'exemple présenté dans la présente section.

 

Suite: Déclarations, types et références