Premiers pas avec l'environnement VBA

Vous pouvez télécharger ici la version de Cours.XLS de la leçon précédente

Jusqu'ici, nous n'avons fait qu'enregistrer des macros que nous avons ensuite exécutées. Mais lors de l'enregistrement de ces macros, du code VBA a été généré. Dans cette leçon, nous allons regarder les coulisses de VBA. Coulisses dans lesquelles nous allons passer de plus en plus de temps, un peu comme des comédiens qui passent plus de temps à se préparer qu'à se représenter.

A quoi ressemble l'environnement VBA ?
Le raccourci-clavier Alt-F11
Présentation globale de l'environnement VBA
L'explorateur de projets
Regarder les macros dans les modules

Résumé de la leçon
Avez-vous bien compris ?
Exercice

A quoi ressemble l'environnement VBA ?

Comme d'habitude, ouvrez votre fichier de cours (où téléchargez-le tel qu'il était dans la leçon précédente).

Allez dans le menu Outils/Macros/Visual Basic Editor. Vous devriez être dans un environnement qui ressemble à peu près à ceci :

Cliquez sur la croix rouge en haut à droite, vous retournez dans Excel. Vous constatez alors dans la barre des tâches qu'il n'y a qu'Excel d'ouvert :

Mais lorsque que vous allez dans VBA avec Outils/Macros/Visual Basic Editor, vous constatez alors qu'il y a DEUX programmes ouverts :

Ce qui veut dire que bien que l'environnement de développement soit un programme à part entière, il est quand même "dépendant" de son "père" Excel. Si nous avions aopéré à la même démarche dans Word, ou un autre programme d'Office, le comportement du programme et de son "fils" VBA aurait été similaire.

Raccourci clavier ALT F11

Fermez à nouveau l'environnement VBA. Nous allons utiliser un raccourci clavier qui va nous faciliter grandement la vie. Lorsque, dans Excel, vous allez dans le menu Outils/Macros, vous voyez les raccourcis clavier

Le menu doit être fermé si vous voulez utiliser les raccourcis-clavier (Sinon ils ne marchent pas)

Vous êtes dans Excel, VBA est fermé. Appuyez sur . Vous devriez être dans l'environnement VBA. Rappuyez sur ALT F11, vous êtes à nouveau dans Excel. Le même raccourci clavier très pratique permet de passer très rapidement de l'un à l'autre. Vous connaissiez peut être le raccourci Windows ALT TABULATION, qui passe aussi d'une application ouverte à l'autre, mais ce dernier passe sur toutes les appliucations : si vous avez 6 programmes ouverts en même temps, ce n'est pas pratique, et ALT F11 s'avère plus rapide.

Présentation globale de l'interface VBA

Allez dans VBA. Fermez TOUTES les fenêtres qui s'y trouvent

Jusqu'à ce que vous vous retrouviez dans un environnement complètement vide, comme ceci :

L'explorateur de projets

Commençons par afficher l'explorateur de projets : Menu Affichage/Explorateur de projets (Ne pas confondre avec l'explorateur d'objets !).

Vous obtenez ceci.
Vous constatez que, comme dans l'explorateur Windows, il y a des petits "+" et des petits "-" qui permettent d'ouvrir ou de fermer tel ou tel élément

Les éléments en gras sont les fichiers actuellements ouverts dans Excel. Il est très possible que vous n'ayez pas les mêmes que moi (Eurotool et FuncRes). Mais en tout cas vous avez VBA Project (lecon4.xls)

Les deux premiers sont des additifs (eXceL Additive).

       Juste pour vous dire d'ou ils proviennent, dans Excel, lorsque vous allez dans le menu Outils/Macros complémentaires, vous pouvez cocher et décocher des cases : c'est ça qui appelle ces fichiers .XLA, mais nous nous égarons de notre propos.

Si vous cliquez sur le petit "-" à gauche de VBA Project, vous fermez les deux "dossiers" Microsoft Excel Objets et Modules.

Et bien sûr, si vous clioquez sur le petit "+", vous le rouvrez. (Il en profite pour vous afficher des fenêtre sur la droite).

Maintenant, vou pouvez bien entendu cliquer sur les petits "-" de Microsoft Excel Objets et Modules pour les réduire à leur tour.

Bien. Développez juste Modules. Fermez toutes les fenêtes à droite pour avoir un écran de cette apparence :

Ne déplacez JAMAIS à la souris les fenêtres de gauche (Comme ici Projet - EuroTool). C'est à dire ne cliquez JAMAIS dans la barre de titre pour la faire glisser par exemple au centre de l'écran, parce qu'ensuite, vous aurez une peine inimaginable à la remettre en place, c'est à dire à la "re-clipser", à la réintégrer sur son côté gauche : elle restera en palette "flottante", cette sacrée fenêtre. Cette remarque restera valable quand on fera apparaître la fenêtre des propriétés. Si ça vous démange d'essayer, libre à vous, mais ne venez pas ensuite m'écrire un e-mail pour me demander comment on la remet en place !

Regarder les macros dans les modules

Ce qui va particulièrement nous intéresser, ce sont les 3 modules : Module1, Module2 et Module3. Il est possible que vous n'en ayez pas le même nombre. Un module est un ensemble de macros. C'est dans ces modules que vous allez découvrir les macros que vous avez créé avec l'enregistreur. Double-cliquez sur Module1 : Ca fait apparaître les macros qui se trouvent dans Module1 :

Si vous double-cliquez sur Module2, vous aurez une nouvelle fenêtre qui contient les macros de Module2. Et si vous double-cliquez sur Module3, vous aurez les macros de Module3 :

Nous n'avons pas parlé de Feuil1 (Feuil1) et ThisWorkBook. Nous en parlerons bien plus tard, ce sont des endroits ou on peut stocker des macros qui s'exécutent automatiquement (Lors de l'ouverture d'un classeur, de l'impression ou encore lors de saisie dans les cellules, ...)

Vous pouvez télécharger ici Cours.XLS tel qu'il devrait être à la fin de cette leçon

L'environnement VBA s'affiche avec le menu Outils/Macros/Visual Basic Editor, ou ALT-F11. A gauche se trouve l'explorateur de projets (Les différents classeurs ouverts ainsi que leurs sous-objets). Dans chaque classeur il y a 2 sous dossiers : Microsoft Excel Objets et Modules. Touzes les macros sont normalement stockées dans les modules. Chaque classeur Excel peut avoir autant de modules qu'il veut, et chaque module autant de macros qu'on veut.

1. Combien de macros peut-il y avoir dans un Module

Un certain nombre. Je ne connais pas la limite (Si quelqu'un la connait....)
Un module et une macro sont synonymes
Une seule
La question correcte est : "Combien de modules contient une macro"

Warning: Undefined variable $Q1 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 192

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 192

Warning: Undefined variable $Q1 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 193

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 193

2. Quel est le raccourci-clavier qui permet de fermer Excel ?

Alt-F11
Ctrl Alt F11
SHIFT F4
Alt-F4

Warning: Undefined variable $Q2 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 209

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 209

Warning: Undefined variable $Q2 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 210

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 210

3. Quel est le raccourci-clavier qui permet de passer facilement d'Excel à l'environnement VBA ?

Ctrl-F11
F11
Alt-q
SHIFT F11
Autre réponse

Warning: Undefined variable $Q3 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 228

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 228

Warning: Undefined variable $Q3 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 229

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 229

4. Comment s'appelle la fenêtre verticale de gauche que l'on peut faire apparaître avec le raccourci clavier Ctrl-r

L'explorateur d'objets
L'explorateur de projets
La liste des procédures
L'explorateur de macros
Autre réponse

Warning: Undefined variable $Q4 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 247

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 247

Warning: Undefined variable $Q4 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 248

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon004/lecon004.php on line 248

Comme exercice, je vous propose un petit truc amusant : jeter un oeil sur de la programmation très avancée effectuée par des programmeurs de chez Microsoft (sans doute ?)
- Dans Excel, allez dans le menu Outils/Macros Complémentaires
- Cochez la case "Outils pour l'Euro"
- Cliquez sur OK
- Allez dans l'environnement VBA, et si je vous donne le mot de passe Wildebeest!! , Affichez sur votre écran à peu près la même chose que ceci :

Je compte sur votre discrétion pour ne pas dévoiler ce mot de passe à tout le monde :-)