Sommaire
- Présentation de Visual Basic for Application
- Accéder à l’interface de développement
- Les différents éléments de l’éditeur de Visual Basic
- L’Explorateur de Projets
- La fenêtre des Propriétés
- L’Explorateur d’Objets
- L’Aide de Visual Basic pour Applications
- La fenêtre de code et les objets par défaut d’un nouveau classeur
- ThisWorkbook
- Sheet
- Les objets supplémentaires d’un nouveau classeur
Présentation de Visual Basic for Applications (via Excel)
Visual Basic pour Applications (VBA) est un outil permettant d’automatiser des tâches d’une des applications de Microsoft Office.
Ici on va parler de Microsoft Excel (et donc VBA Excel).
Tout d’abord, avant de commencer, une information sur la différence entre VBA et VB6 : VB6 sert à créer des applications autonomes (*.exe) alors que VBA a besoin d’une application hôte pour fonctionner. Il multiplie les possibilités d’Excel.
Accéder à l’interface de développement de VBA (l’IDE)
Vous avez trois possibilités, une fois Excel ouvert :
* la combinaison des touches Alt + F11
* en allant dans le menu Outils, Macro et Visual Basic Editor

* en faisant un clique-droit sur la barre d’outils, rajouter Visual Basic et en cliquant sur le bon pavé

Voilà, maintenant que l’on sait ouvrir l’éditeur de Visual Basic, nous allons prendre connaissance avec :

Les différents éléments de l’éditeur de Visual Basic :
L’Explorateur de Projets :

Il affiche tous les projets chargés, à savoir EuroTool (macro complémentaire de Microsoft sur les conversions €uro), non modifiable ; ProjetNico (macro complémentaire faite par mes soins) ; et le plus important :
VBAProject-Classeur1, avec les composants d’origine (les 3 feuilles et ThisWorkBook).
Nous y reviendrons plus tard.
La fenêtre des Propriétés :

Pas très parlant pour le moment, mais c’est cette fenêtre qui liste toutes les propriétés d’un objet.
L’Explorateur d’Objets :
Il faut appuyer sur la touche F2

Outil indispensable, il permet de savoir à quelle classe appartient tel ou tel objet, les propriétés / méthodes / évènements d’un objet ou d’une classe.
Pour mieux comprendre les classes objets, Excel en propose plus d’une centaine. Parmi ces objets, vous pouvez trouver les classeurs, les feuilles de calcul et les cellules.
Tous est hiérarchisé, un objet peut en contenir un autre, comme le classeur, qui contient des feuilles, contenant elles mêmes des cellules.
Les symboles :
Classe
Module
Enumérations
Propriété
Propriété par défaut
Evènement
Constante
L’Aide de Visual Basic pour Applications :
Comme d’habitude, F1 convient bien à la situation.
Je tiens à préciser pour les anglophobes que l’aide est en français, complète et très bien expliquée. Bref, tout abus de celle-ci est conseillé (et à utiliser sans modération).

Maintenant le tour du propriétaire étant fait, je vais vous présenter la fenêtre de code, mais dans un nouveau chapitre, en utilisant l’objet ThisWorkBook…
La fenêtre de code et les objets par défaut d’un nouveau classeur :
ThisWorkBook :
Bon, vous vous souvenez de notre Explorateur de Projet ?

Double-cliquez sur ThisWorkBook, une fenêtre blanche se crée :

Vous voyez deux zones de listes, une avec le mot (Général), et une avec le mot (Déclarations).
Là où se trouve Général, vous y trouverez la liste des objets attachés à l’objet ThisWorkBook (en l’occurrence, le seul objet disponible est WorkBook, qui représente notre classeur).
Ensuite, Déclarations représente l’entête du Module (donc l’entête de ThisWorkBook). C’est ici que nous allons placer certaines déclarations (sans jeu de mots…) comme les déclarations de variables Public, ou encore les types de données personnalisées (Enumérations aussi) puis les API Windows (ou autres DLLs).
Cette zone de liste propose également les procédures / fonctions que vous créez, ainsi que les évènements attachés à un objet. Nous allons prendre l’exemple de notre classeur.
Pour faire ceci, choisissez donc WorkBook :

L’évènement par défaut apparaît :

Vous vous en doutez, le code placé entre ces deux lignes sera exécuté à chaque fois que le classeur s’ouvre !
Il est possible de choisir d’autres évènements que WorkBook_Open :

Si vous voulez savoir à quoi servent tous ces évènements, je vous invite à appuyer sur votre touche F1 :

En tapant WorkBook dans la zone de recherche de l’aide, il est proposé tout un tas de rubriques, j’ai sélectionné WorkBook (objet), et je suis arrivé sur la page d’aide, avec la liste des évènements (ainsi que des propriétés et méthodes)

Comme vous pouvez le constater, je n’ai pas menti sur l’évènement WorkBook_Open
Autre possibilité d’afficher les membres d’un objet, c’est notre touche F2 (explorateur d’objets) :

En tapant WorkBook dans la zone de recherche en haut de l’explorateur d’objets, j’obtiens le résultat de la recherche. En sélectionnant le bon, les membres s’affichent à leurs tours.
Ce qu’il faut retenir, c’est que les évènements listés avec l’objet ThisWorkBook représentent les évènements au niveau classeur (celui où se trouve le code, donc ici Classeur1.xls)
Sheet :
Allez, on va reprendre notre explorateur d’objets :

Ici il y aura le même nombre de feuilles que dans votre classeur.
Double-cliquez sur Feuil1.
Dans la zone Déclarations, sélectionnez non pas WorkBook mais WorkSheet, représentant donc la feuille sur laquelle vous avez cliqué.
La liste des évènements n’aura donc d’effets que sur ladite feuille, et non les autres.
Je vous passe donc les évènements (maintenant que vous savez faire) au niveau feuille, le but dans ce tutorial étant de découvrir l’environnement de développement.
Les objets supplémentaires d’un nouveau classeur :
Vous pouvez rajouter 3 types d’objets :
- Module
- Module de Classe
- UserForm
Par le menu Insertion :

Le Module sert à stocker des procédures / fonctions en majeure partie de type Public (donc accessible depuis tout le projet) mais aussi en Private.
Le Module de Classe lui, vous permet de créer de nouvelles classes d’objet, avec ses propriétés / méthodes / évènements.
Je vais plutôt m’attarder sur le UserForm, qui est une interface utilisateur. Insérez-en un.

Dans cette interface, vous allez pouvoir y placer des objets (des boutons, des zones de listes, etc..), contenus dans la boite à outils.
(menu Affichage, boite à outils, si elle n’apparaît pas)
A part les 2 du bas, tous les autres contrôles sont ceux par défaut)
Pour placer un objet, il suffit de le sélectionner dans la boite à outils, et de le dessiner sur le UserForm.
Pour rajouter un objet qui n’est pas dans la liste par défaut, faite un clique droit sur la boite à outils, sélectionnez contrôles supplémentaires.

Une fenêtre s’affiche, avec les objets déjà insérés mais aussi plein d’autres objets, il suffit de le cocher pour le voir apparaître dans la boite à outils.

Pour vous donner un exemple, j’ai coché Windows Media Player, et maintenant, il apparaît dans la boite à outils :

Vous pouvez donc le dessiner sur votre UserForm, comme un contrôle standard :

Pour l’utilisation de ce WMP, vous trouverez de nombreux site qui expliquent comment l’utiliser.
Bon, je pense avoir fait le tour des éléments principaux à montrer. Je vais faire en sorte par la suite de fournir des codes en guise d’exemples, pour mieux guider l’utilisation des objets d’un classeur ;)