VISUAL BASIC EDITOR - VBE


Cette page fournit des détails sur tous les menus de l'éditeur Visual Basic Editor, ainsi que des informations sur l'explorateur de projets, la fenêtre d'exécution, sur la manipulation de cet outil à l'aide du langage Visual Basic For Applications (VBA).

Certaines explications sont des portions de l'aide d'Excel, elle est plus intéressante dans ces dernières versions.
Pour y accéder, cliquer sur le menu, positionner le curseur sur la commande qui vous intrigue sans cliquer dessus, puis faites F1, l'aide apparaît.

Menu Fichier

Enregistrer Ctrl S
Pour sauvegarder le classeur excel et les modifications que vous avez pu apporter à travers VBE sans retourner sous Excel.
Importer Ctrl M
Importer un formulaire ou une feuille de code (module, module de classe) dans le projet en cours.
Exporter un fichier Ctrl E
Affiche la boîte de dialogue Exporter un fichier pour que vous puissiez extraire la feuille de code ou le formulaire actif du projet.

Le fichier est copié dans un fichier externe ; il porte l'extension bas en cas d'exportation d'une feuille de code, l'extension cls si c'est un module de classe, s'il s'agit de l'exportation d'un formulaire, deux fichiers sont générés, l'un porte l'extension frm l'autre l'extension frx .

Cette option n'est pas disponible si vous n'avez pas sélectionné un fichier dans l'Explorateur de projets.
Supprimer Feuil1  

Permet de supprimer l'objet activé s'il est supprimable tel une feuille de code ou un formulaire, c'est cependant impossible pour la feuille de code "thisworkbook" et les feuilles de code rattachées aux feuilles de calcul ou feuilles graphiques.

Avant la suppression de cet objet, un message vous demande si vous souhaitez l'exporter en tant que fichier. Si vous choisissez Oui, la boîte de dialogue Exporter un fichier s'ouvre. Si vous choisissez Non, l'élément est supprimé.

Cette option n'est pas disponible si vous n'avez pas sélectionné un fichier dans l'Explorateur de projets.

Imprimer Ctrl P
Imprimer le formulaire ou la feuille de code en cours ou bien imprimer tout le projet VBA (toutes les feuilles ...).
Quitter Alt Q


Menu Edition

Annuler Ctrl Z Annuler les dernières opérations effectuées : frappe de texte, déplacement d'objets, copie-collage d'objets.
Impossible de répéter   Certaines opérations ne peuvent être annulées : insertion d'objets, insertion d'objets.
Couper Ctrl X Couper du texte d'une feuille de code, et couper des objets figurant sur des formulaires.
Copier Ctrl C Copier du texte d'une feuille de code, et couper des objets figurant sur des formulaires.
Coller Ctrl V Coller du texte, et couper des objets figurant sur des formulaires.
Effacer Suppr Effacer du texte, des objets figurant sur des formulaires.
Sélectionner tout Ctrl A Sélectionner tout le texte ou tous les objets d'un formulaire.
Rechercher Ctrl F Recherche de texte dans la procédure en cours, la feuille de code en cours, le texte sélectionné ou dans toutes les feuilles de code.
Suivant F3 Poursuite de la recherche.
Remplacer Ctrl H  
Retrait Tab Décaler/Indenter le texte vers la droite, pour essayer d'en améliorer la visibilité.
Retrait négatif Maj Tab Décaler/Indenter le texte vers la gauche.
Répertorier les propriétés/méthodes Ctrl J Ouvre dans la fenêtre Code une zone de liste déroulante contenant les propriétés et les méthodes disponibles pour l'objet.
Répertorier les constantes Ctrl Maj J Ouvre dans la fenêtre Code une zone de liste déroulante contenant les constantes pour une propriété que vous avez tapée et qui précédait un signe égal .
Info express Ctrl I Indique la syntaxe d'une variable, fonction, instruction, méthode ou procédure sélectionnée dans la fenêtre Code.
Info paramètres Ctrl Maj I

Affiche dans la fenêtre Code une fenêtre contenant des informations à propos des paramètres de la fonction ou de l'instruction d'origine. Cela vous aidera à écrire vos instructions.

L'exemple ci-dessous montre l'info express (en jaune) qui vous aidera à écrire l'instruction msgbox et l'info paramètres (en blanc) montre les valeurs que peut prendre le second paramètre "buttons".

vbe infos

Compléter le mot Ctrl Espace
Complète le mot que vous êtes en train de taper dès que vous avez entré assez de lettres pour que Visual Basic identifie le mot souhaité.

Ainsi si vous écrivez "appl", et utilisez Ctrl Espace, Excel écrira le mot application, si de nombreux mots commencent par appl, alors la liste déroulante "Infos paramètres" apparaîtra.
Signets  
Affiche un menu permettant de créer ou de supprimer des espaces réservés dans la fenêtre Code, de passer au signet suivant ou précédent ou de supprimer tous les signets.

 

Affichage

Code F7
Affiche la feuille de code de l'objet sélectionné (module, feuille de calcul, formulaire).
Objet Maj F7
Permet de basculer sur l'objet correspondant à la feuille de code en cours (la feuille de calcul x si vous êtes sur sa feuille de code, le formulaire Userform1 si vous êtes sur sa feuille de code).
Définition Maj F2
Affiche l'emplacement de la fenêtre Code où est définie la variable ou la procédure située sous le pointeur. Si la définition est dans une bibliothèque référencée, elle apparaît dans l'Explorateur d'objets.
Dernière position Ctrl Maj F2
Permet de revenir rapidement à une position précédente dans le code. Cette commande n'est activée que si vous modifiez le code ou faites un appel de commande Définition, à condition que la fenêtre Code soit affichée. Dans Visual Basic, seules les 8 dernières lignes consultées ou modifiées sont accessibles.
Explorateur d'objets  
Affiche l'Explorateur d'objets, qui énumère les bibliothèques d'objets, les bibliothèques de types, les classes, les méthodes, les propriétés, les événements et les constantes utilisables dans le code, ainsi que les modules et les procédures définis pour votre projet.
Fenêtre Exécution Ctrl G

Affiche la fenêtre Exécution et des informations issues des instructions de débogage de votre code ou de commandes entrées directement dans la fenêtre. Que pouvez-vous y faire ?

  • Tester les nouvelles portions de code ou celles posant des problèmes.
  • Consulter ou modifier la valeur d'une variable durant l'exécution d'une application ; pendant que l'exécution est interrompue, attribuez une nouvelle valeur à la variable de la même manière que dans le code.
  • Consulter ou modifier la valeur d'une propriété durant l'exécution d'une application.
  • Appeler des procédures comme vous le feriez dans le code.
  • Afficher la sortie de débogage durant l'exécution du programme.

L'image ci-dessous vous montre une procédure appelée Demo_Fenetre_Execution figurant dans la feuille de code "Module1" du classeur "Classeur1.xls". Cette procédure possède une boucle qui incrémente de 2 en 2 la variable i et en écrit le contenu dans la fenêtre Exécution (debug.print).

Un point d'arrêt est posé sur l'instruction "Next i", à chaque boucle la macro va faire une pause, ce qui nous permet de visualiser la valeur de i dans la fenêtre exécution grâce à l'expression "?i" (à valider par entrée).

Au la fin de la seconde boucle, j'ai modifié la valeur de i avec l'expression "i=8", ainsi au prochain tour, i a pris la valeur de 10.

 

 

vbe fenêtre exécution

Fenêtre Variables locales   Afficher les variables de la procédure en cours et leur valeur.

La procédure "demo_fenetre_variable_locale" de l'exemple ci-dessous affiche dans une boîte de dialogue (msgbox, message box) la valeur de la variable i à chaque boucle ; un point d'arrêt est posé sur la déclaration de fin de la boucle. En l'espèce cette macro a été exécutée et arrêtée à la fin de la seconde boucle.

La fenêtre "Variables locales" affiche la valeur des variables pendant cette exécution de la procédure, leur type et leur éventuelle valeur, à savoir la variable str_tx est rattaché au module "Module1" et la variable i déclarée dans la procédure.
De même, la fenêtre "Espions" montre la valeur de l'expression espionne "str_tx & i".

vbe variables locales

Fenêtre Espions  

Il y a plusieurs moyens de définir un espion, par exemple dans l'exemple ci-dessus, vous pouvez sélectionner avec la souris la chaîne de caractères "str_tx & i", puis cliquer à droite, choisir l'option "Ajouter un espion", la fenêtre suivante apparaît.

J'ai choisi le type "Expression espionne", mais vous devez comprendre qu'Excel peut également mettre en pause l'exécution sous deux conditions différentes.

vbe espion

Pile des appels Ctrl L

Affiche la boîte de dialogue Pile des appels, qui énumère les procédures dont l'exécution est en cours. Cette commande n'est disponible qu'en mode Arrêt.

Lorsque Visual Basic exécute le code de la procédure, cette dernière est ajoutée à la pile des appels de procédures actifs. Si elle appelle à son tour une autre procédure, les deux procédures sont citées dans la pile.
Chaque procédure est supprimée de la pile lorsque l'exécution revient à la procédure appelante. Les procédures appelées depuis la fenêtre Exécution viennent aussi s'ajouter à la pile des appels.

Explorateur de projets Ctrl R

Permet d'accéder aux différents objets et feuilles de code des classeurs ouverts.
L'affichage d'un formulaire, de la feuille de code d'un formulaire ou de toutes autres feuilles de code se fait par double-clic.

vbe vba project

Ainsi si vous double-cliquez sur la feuille "Feuil1", vous verrez une feuille de code comme ci-dessous.

vbe module

Puis afin d'écrire par exemple des procédures évènementielles, sélectionner l'objet Worksheet dans la liste déroulante de gauche, les lignes de déclaration ci-dessous apparaîssent. Vous pouvez connaître et choisir dans la liste déroualnte de droite les différents évènements gérables pour cet objet.

vbe module

Fenêtre Propriétés F4

Permet d'accéder et de modifier manuellement les propriétés des objets sans passer par des procédures.

Pendant que j'y suis, voilà ci-dessous une figure qui montre les propriétés de l'objet Worksheet. Les propriétés du type "EnableXXXX" permettent d'autoriser ou non l'action XXXX sur une feuille de calcul lors de la protection de celle-ci, cela nécessite la protection spécifique de l'interface (d'autres infos ).

vbe propriétés

Boîte à outils  

Affiche la "Boîte à outils" qui montre les objets que l'on peut insérer dans un formulaire.

La flèche noire, actionné par simple clic permet de sélectionner un ou plusieurs objets du formulaire.
L'insertion d'un objet se fait par un clic sur l'objet de votre choix, puis toujours à l'aide de la souris, il faut dessiner cet objet sur le formulaire (méthode drag & drop, glisser-déplacer).

Vous pouvez insérer d'autres objets que ceux qui apparaissent par défaut sur la boîte. Voilà comment faire :

  • cliquez à droite sur les objets et choisissez l'option "Contrôles supplémentaires" dans le menu contextuel qui apparaît alors (cf. la figure ci-dessous),
  • parcourez la boîte de dialogue s'affichant à la recherche du contrôle désiré,
  • cochez la case qui lui correspond et validez, l'objet choisi apparaît dans sur cette boîte à outils avec l'icône représentatif qui lui est associé le cas échéant.

vbe toolbox

Le même menu contextuel vous permet de supprimer ou de personnaliser l'élément en changeant son nom ou l'icône représentant son type.

Mais vous pouvez aussi personnaliser la boîte à outils en y insérant un nouvel onglet/une nouvelle page pour contenir d'autres objets, il suffit de cliquer à droite sur ce petit formulaire (en dehors des objets) ; ces pages de boîte à outils sont exportables individuellement au format *.pag.

Ordre de tabulation  
Permet de déterminer l'ordre de tabulation des objets du formulaire actif autrement dit l'ordre dans lequel les objets seront activés par tabulation (Touche Tab) (pas si simple à expliquer).
Barres d'outils  
Afficher, masquer ou personnaliser les barres d'outils.
Microsoft Excel Alt F11
Basculer l'affichage vers Microsoft Excel.

 

Insertion

Procédure   Insérer une procédure : procédure sub, fonction property ...
Indiquer le nom de la procédure à créér, spécifier son type, etc. et Excel la créera à l'endroit où figure le curseur.
Cette option n'est pas disponible si vous n'avez pas sélectionné un fichier dans l'Explorateur de projets.
Userform   Insertion d'une feuille de type Userform (voir aussi la fonction d'import).
Module  

Insertion d'une feuille de code type module.

module vbe

Module de classe   Insertion d'une feuille de code type module de classe.
Fichier   Insérér une feuille de code, un formulaire, ou même le contenu d'un fichier texte.
Cette option n'est pas disponible si vous n'avez pas sélectionné un fichier dans l'Explorateur de projets.

 

Format

Commandes disponibles du moment où un objet d'un formulaire est sélectionné.
Aligner   Permet d'aligner les objets sélectionnés les uns par rapport aux autres, les aligner sur leur grille ...
Uniformiser la taille   Ajuster la taille des objets : hauteur, largeur ou les deux.
Ajuster la taille    
Ajuster à la grille    
Espacement horizontal   Uniformiser l'espace horizontal entre les objets, le modifier ou le supprimer.
Espacement vertical   Uniformiser l'espace vertical entre les objets, le modifier ou le supprimer.
Centrer sur la feuille   Positionner un objet au centre vertical ou horizontal d'une feuille.
Réorganiser les boutons   Positionner les boutons de commande sélectionnés sur le bas ou le côté droit d'une feuille.
Grouper   Grouper tous les objets en un pour pouvoir les déplacer tous d'un coup.
Dissocier   Dégrouper les objets.
Plan   Change l'ordre des objets sélectionnés sur une feuille. Cela vous servira à superposer des objets sur un autre ou à l'inverse à le passer en arrière-plan.



Les explications ne sont pas forcément faciles à élaborer, je préconise que vous expérimentiez ces commandes pour en connaître leur utilité.

Déboguage

Compiler VBAProject   La compilation vérifie la cohérence des procédures de votre projet.
Pas à pas détaillé F8
En appuyant sur la touche F8, vous pouvez exécuter une procédure instruction après instruction.

Uune première frappe de cette touche et Excel lit la première ligne de votre macro à savoir la ligne de déclaration, ensuite continuez d'appuyer sur F8 pour exécuter les lignes suivantes les unes après les autres.

Vous pouvez contrôler entre chaque exécution les valeurs de vos variables grâce aux espions, la fenêtre de déboguage, comme décrit plus haut dans les descriptions du menu Affichage.
Pas à pas principal Maj F8 Cette commande est similaire à la précédente, mais permet de ne pas rentrer dans le détail de boucle (ou de sous-procédures.
Pas à pas sortant Ctrl Maj F8 Exécute les lignes restantes d'une fonction à l'intérieur de laquelle se trouve le point d'exécution en cours.

L'instruction affichée ensuite est l'instruction suivant l'appel de procédure. La totalité du code entre le point d'exécution en cours et le point d'exécution final est exécutée.
Exécuter jusqu'au curseur Ctrl F8 Utilisez cette commande pour exécuter une procédure jusqu'à l'instruction où est positionné le curseur.
L'application doit être en mode création.

La procédure va s'exécuter à partir du début de la procédure ou de l'instruction en cours jusqu'à l'instruction sélectionnée et l'indicateur de la ligne d'exécution qui se trouve dans la marge pointera sur cette ligne (cet indicateur est la flèche jaune que vous pouvez apercevoir dans les descriptions du menu Affichage).
Ajouter un espion  

Affiche la boîte de dialogue Ajouter un espion, permettant d'entrer une expression espionne. L'expression peut être toute expression Visual Basic valide. Les expressions espionnes sont mises à jour dans la fenêtre Espions chaque fois que vous passez en mode Arrêt.

Consultez les les descriptions du menu Affichage pour des informations sur ces expressions espionnes.

Modifier un espion Ctrl W Affiche la boîte de dialogue Modifier un espion, permettant de modifier ou de supprimer une expression espionne. Disponible lorsque l'espion est défini, même si la fenêtre Espions est masquée.
Espion Express Maj F9 Affiche la boîte de dialogue Espion express contenant la valeur en cours de l'expression sélectionnée.

Utilisez cette commande pour vérifier la valeur en cours d'une variable, d'une propriété ou d'une autre expression pour laquelle vous n'avez pas défini d'expression espionne. Sélectionnez l'expression soit dans la fenêtre Code, soit dans la fenêtre Exécution, puis choisissez la commande Espion express. Pour ajouter une expression espionne basée sur l'expression de la boîte de dialogue Espion express, choisissez le bouton Ajouter.
Basculer le point d'arrêt F9 Définit ou supprime un point d'arrêt à la ligne en cours. Vous ne pouvez pas définir de point d'arrêt sur des lignes contenant du code non exécutable tel que des commentaires, des instructions de déclaration ou des lignes vierges.

Une ligne de code dans laquelle un point d'arrêt est défini est affichée dans les couleurs précisées dans l'onglet Format de l'éditeur de la boîte de dialogue Options.

Effacer tous les points d'arrêt Ctrl Maj F9 Supprime tous les points d'arrêt de votre projet. Votre application peut cependant toujours interrompre son exécution si vous avez défini une expression espionne ou sélectionné l'option Arrêt sur toutes les erreurs dans l'onglet Général de la boîte de dialogue Options.

Vous ne pouvez pas annuler la commande Effacer tous les points d'arrêt.
Définir l'instruction suivante Ctrl F9 Définir un point d'arrêt d'exécution sur la ligne de code de votre choix.

Vous pouvez définir une autre ligne de code à exécuter après l'instruction couramment sélectionnée en choisissant la ligne de code à exécuter et en sélectionnant la commande Définir l'instruction suivante ou en faisant glisser l'indicateur en marge Ligne d'exécution courante vers la ligne de code à exécuter.

À l'aide de la commande Définir l'instruction suivante, vous pouvez sélectionner une ligne de code située avant ou après l'instruction couramment sélectionnée.

Lorsque vous exécutez le code, tout code intermédiaire est ignoré. Utilisez cette commande lorsque vous souhaitez exécuter de nouveau une instruction au sein de la procédure en cours ou lorsque vous souhaitez ignorer certaines instructions.

Vous ne pouvez pas utiliser la commande Définir l'instruction suivante dans le cas d'instructions situées dans des procédures différentes.

Afficher l'instruction suivante   Met en surbrillance l'instruction suivante à exécuter.
Utilisez la commande Afficher l'instruction suivante pour placer le curseur sur la ligne qui sera exécutée ensuite.

 

Exécution

Exécuter la macro F5 Permet d'afficher la boîte Macros, d'exécuter le formulaire actif et donc voir "ce qu'il donne" ou d'excuter la macro active (celle sur laquelle est positionné le curseur).
Arrêt Ctrl Arrêt Mettre la macro en pause.
Réinitialiser   Arrêter la macro, c'est possible également à travers une barre d'outils.
Mode Création   Le mode création vous permet d'éditer les différents objets (bascule d'un mode d'exécutabilité à un mode d'édition).

 

Outils

Références
Affiche la boîte de dialogue Références. Cette boîte de dialogue vous permet d'ajouter une référence à une bibliothèque d'objets ou à une bibliothèque de types dans votre projet. Cela permet ainsi de rendre les objets d'une autre application disponibles dans votre code. Une fois qu'une référence est définie, les objets auxquels il est fait référence sont affichés dans l'Explorateur d'objets.

Vous pouvez également ajouter des références à d'autres projets chargés et enregistrés. Si un projet n'a pas été enregistré, il apparaît sous la forme "NON ENREGISTRé: <NomProjet>" ; aucune référence ne pourra être faite à ce projet.

Cette commande est disponible uniquement lors de la création.

Contrôles supplémentaires
Macros
Affiche la boîte de dialogue Macro dans laquelle vous pouvez créer, exécuter ou supprimer une macro.
Options
Affiche la boîte de dialogue Options, dans laquelle vous pouvez sélectionner un onglet afin de définir les attributs de l'environnement de programmation Visual Basic.
Propriétés de VBAProject
Affiche la boîte de dialogue Propriétés du projet permettant de définir la protection ainsi que des options spécifiques pour votre projet.
Signature électronique
Affiche la boîte de dialogue Signature numérique à partir de laquelle vous pouvez définir le certificat de signature électronique de votre projet.

 

Compléments

Gestionnaire de compléments

 

Fenêtre

Fractionner
Même principe que sous Excel lui-même.
Mosaïque horizontale Même principe que sous Excel lui-même.
Mosaïque verticale Même principe que sous Excel lui-même.
Cascade Même principe que sous Excel lui-même.
Réorganiser les icônes Même principe que sous Excel lui-même.
Liste des fenêtres ouvertes Liste toutes les fenêtres document (modules, modules de classe, feuilles de code).


Aide

Aide sur Microsoft Visual Basic F1
Accéder à l'aide VBA Excel.
MSDN sur le web   Disponible sur les versions les plus récentes, cette commande permet d'ouvrir le site web MSDN.
A propos de Microsoft Visual Basic   Informations sur le produit en cours.

 

 

Préoccupations diverses

Aller dans Visual Basic, puis faire Outils, Options, cliquer sur l'onglet Ancrage et mettre des croix partout ;-)
Merci à Steig, solution postée le samedi 1 avril 2000 20:20 dans microsoft.public.fr.excel, sujet "Fenetre Microsoft Visual Basic".
Application.CommandBars.findControl(Id:=1605).Execute => le seul problème, c'est qu'elle interrompra l'exécution de la macro !
Application.CommandBars.findControl(Id:=1605).Reset =>> pour le réactiver, à l'inverse de la précédente, cette commande n'interrompt pas la macro. (message de L. L., objet: "Re: VBA mode création activation/désactivation", date : lundi 26 juin 2000 21:36)

with application.VBE.MainWindow
.SetFocus
.windowstate = vbext_ws_Maximize 'ou minimize ou reduce
.Visible = true
end with

écriture plus simple : application.vbe.mainwindow.visible=true 'pour afficher VBE

Sub ClearDebug()
thisworkbook.VBProject.VBE.Windows("Immediate").SetFocus
SendKeys "^a{DEL}" 'sélectionne le contenu de la fenêtre en simulanat l'activation des touches Ctrl & A, supprime en simulant la touche suppr
End Sub Sub DeleteTextInDebugWindow2()
' Chris Rae's VBA Code Archive - http://chrisrae.com/vba
VBE.Windows("Immediate").SetFocus
Application.VBE.CommandBars("Menu Bar").Controls("&Edit").Controls("Select &All").Execute
SendKeys "{Del}"
End Sub

'Effacer à partir de VBE : SendKeys "^g^a{del}"