Programmation VBA pour Excel
Accueil
Sommaire du cours
Sommaire des exercices
Résumé du cours
Forum
Travaux
TICE
AgroParisTech
About
©AgroParisTech
Chapitre 2 - L’environnement de développement Visual Basic Editor

Comme indiqué précédemment, l’enregistreur de macros permet de créer rapidement des programmes VBA simples. Pour aller plus loin, il faut connaître le langage VBA et apprendre à écrire soi-même les instructions qui correspondent aux actions que l’on souhaite faire réaliser par notre programme.
Pour cela on dispose sous Excel d’un environnement spécifique appelé Visual Basic Editor qui s’exécute dans une fenêtre différente de celle d’Excel. Cet environnement permet de modifier des codes existants (produits par exemple par l’enregistreur de macros), de créer de nouveaux programmes à partir de rien, d’organiser ses programmes suivants leurs rôles dans des
modules
, de créer des
procédures
et des
fonctions
, qui pourront être communes à différents programmes ou utilisables directement dans les feuilles de calcul, …
L’environnement VBE s’ouvre en cliquant sur le bouton ci-dessous :
OuvertureVBE
Cette fenêtre s’ouvre alors et vous donne accès à de nouvelles fonctionnalités :
VBE
Cette fenêtre se décompose notamment en trois parties :
  • affichage, écriture et modification des fichiers de programmes disponibles ou modules de codes
  • affichage des propriétés du module de code sélectionné
  • explorateur de l’ensemble des modules de codes
  • Les particularités de ces zones sont détaillées dans les sections suivantes.
    Fenêtre de lecture, écriture et modification d’un programme
    Toutes les instructions VBA sont enregistrées dans un module de code qui est affiché dans la fenêtre principale de VBE à droite.
    FenetreCode
    Cette fenêtre se comporte comme un éditeur de texte classique avec quelques fonctionnalités supplémentaires telles que la coloration du texte en fonction de la nature de ce qui est écrit :
    - Les
    mots clés
    du langage sont affichés en bleu. Par exemple : Sub (mot clé de début de procédure), True (constante booléenne), …
    - Les
    commentaires
    sont affichés en vert. Par exemple : « Macro test pour exemple ». Ils sont précédés d’une apostrophe.
    Un programme est une suite d’
    instructions
    . Elles sont généralement écrites sur une seule ligne.
    Exemple :
    Range("A1").Select
    Cette instruction permet de sélectionner la cellule nommée A1 dans le classeur courant.
    Une procédure commence par le mot clé Sub suivi du nom de la procédure et d’une liste d'
    arguments
    entre parenthèses, qui peut être vide. Elle se termine par le mot clé End Sub. Une procédure a la syntaxe suivante :

    Sub NomProcédure(argument_1,..., argument_n)

    Instructions

    ...

    End Sub

    L’enregistreur de macro ne génère que des procédures sans arguments.
    Dans l’exemple précédent, la fenêtre d’affichage de modules de codes affiche le module nommé Module1 (cf. bandeau de la fenêtre). Ce module contient une seule macro nommée Macro1.
    Dans cette macro, il y a 4 lignes de commentaires, commençant par une apostrophe puis 6 instructions :
  • L'instruction Range("A1").Select sélectionne (Select) une cellule (Range) désignée par sa ligne (1) et sa colonne (A).
  • L'instruction ActiveCell.FormulaR1C1 affecte une formule à la cellule active (ActiveCell).
  • L'instruction Selection.Font permet d’appliquer un format de police (Font.Bold ou Font.Italic) à la cellule sélectionnée (Selection).
  • Lorsque cette macro est lancée on observe donc dans Excel le résultat suivant :
    ResultatVBE
    Les macros produites par l’intermédiaire de l’enregistreur de macro sont stockées dans des modules de codes. Un module de code peut contenir plusieurs macros ou fonctions.
    Créer et supprimer une procédure directement dans VBE
    Pour créer une nouvelle procédure directement dans VBE, sans passer par l’enregistreur de macros, il suffit de taper dans l’éditeur de texte de VBE le mot clé Sub dans un module de code et en dehors de toute autre procédure, suivi du nom que vous voulez attribuer à votre macro.Vous pouvez ensuite ajouter les arguments entre parenthèses.
    Lorsque vous passez à la ligne, le mot clé End Sub délimitant la procédure est automatique ajouté. Vous n’avez alors plus qu’à compléter les instructions selon la tâche qu’elle doit remplir.
    Pour supprimer une procédure directement dans VBE, il vous suffit de sélectionner le texte correspondant entre le mot clé Sub et le mot clé End Sub et de le supprimer.
    Pour que les programmes produits soient conservés, il faut les sauvegarder en cliquant sur l'onglet FICHIER - ENREGISTRER ou en tapant le raccourci clavier CTRL+S.
    Affichage et modification des propriétés d’un module de code
    FenetreModules
    La fenêtre en bas à gauche de l’environnement VBE permet d’afficher et de modifier les propriétés du module sélectionné.
    On peut constater qu’un module est uniquement caractérisé par un nom que l’on peut modifier par simple saisie dans la case se situant à droite du mot clé (Name).
    Retrouver un programme enregistré : l’explorateur de projets
    A chaque classeur Excel ouvert est associé un projet VBA.
    L'explorateur de projets (partie en haut à gauche de la fenêtre VBE) affiche une liste hiérarchisée des différents projets VBA associés aux classeurs Excel ouverts.
    Un projet VBA associé à un classeur regroupe les éléments du classeur, comme ses feuilles de calcul, les procédures et les fonctions associées à ce classeur et stockées dans un ou plusieurs modules de code.
    Explorateur
    Par exemple, le projet VBA associé au Classeur1.XLS est composé de deux dossiers :
    - le dossier Microsoft Excel Objects qui contient les éléments attachés au projet : le Classeur1.XLS (ThisWorkbook) et ses feuilles de calcul Feuil1, Feuil2 et Feuil3 ;
    - le dossier Modules qui contient les modules de code du projet : le module MODULE1 qui contient la macro MACRO1.
    L’explorateur de projets permet, à l’aide du clic droit de la souris, d’ouvrir un module de code (option CODE), d’insérer un nouveau module de code (option INSERTION) ou d’en supprimer un (option SUPPRIMER ‹ NOMMODULE ›).
    clicdroit
    L’ouverture d’un module de code peut également se faire par double-clic sur celui-ci dans l’explorateur de projets.
    La commande INSERTION MODULE permet également d’insérer un nouveau module de code.
    On peut insérer autant de modules de code qu’on le désire en fonction des besoins recensés. Dans la pratique, on cherche à regrouper dans un même module tous les éléments de programmes qui se rapportent à un ensemble de fonctionnalités donné. Par exemple, si l’on crée des fonctions de calcul mathématiques, on les regroupera dans un même module que l’on pourrait nommer Maths.
    Exécuter directement dans VBE une procédure sans argument
    Les procédures avec arguments et les fonctions ne peuvent être exécutées que par d’autres procédures ou fonctions et n'apparaissent pas dans la liste des macros de la boîte de dialogue MACRO.
    Pour exécuter une procédure sans argument, positionnez le curseur dessus et cliquer sur l’onglet EXECUTION - EXECUTER SUB/USERFORM (F5) en haut de la fenêtre ou cliquer sur l’icône play.
    Pour arrêter l'exécution d’une procédure sans argument si une erreur survient, cliquez sur l’onglet EXECUTION - REINITIALISER en haut de la fenêtre ou cliquer sur l’icône stop.
    Seules les procédures sans argument peuvent être exécutées directement par ces méthodes.
    Ce chapitre est terminé, à vous de jouer ! ‹ lien vers les exercices