Le langage VBA (Visual Basic for Applications) est un langage qui fonctionne dans un programme hôte. Ce programme, c'est Microsoft Excel. Et pour commencer à écrire des macros VBA, il convient d'ouvrir l'éditeur VB, que l'on nomme Visual Basic Editor.
Visual Basic Editor est un IDE (Integrated Development Environment, ou en francais Environnement de Développement Intégré) qui permet de créer, de modifier ou de déboguer des macros.
Comment accéder à l'éditeur VBA ?
Il suffit d'appuyer sur le raccourci ALT+ F11.
Comment est composé l'éditeur VBA ? Comme illustré sur la capture d'écran ci-dessous, l'éditeur VBA est composé de plusieurs fenêtres. Nous aborderons dans cet article le rôle de chacune d'entre elles.

Tout d'abord, dans la barre de menu qui est en haut de l'écran, il y a un bouton Play et Stop, avec les mêmes icones que sur un lecteur multimédia.

Le bouton Play (lecture) permet de lire la macro, alors que le bouton Stop permet de l'interrompre et de passer en mode Arrêt.
Nb : Avant de lancer une macro, il est nécessaire d'être en mode Arrêt. Le bouton F5 sert de raccourci pour passer en mode Lecture.
NB 2 : Il est également possible de travailler ligne par ligne, avec ce qu'on appelle un Pas à Pas détaillé. (Step by Step). Pour cela, on peut appuyer sur le raccourci F8, ce qui fait apparaitre un curseur jaune sur chaque ligne du code VBA.
1. L'explorateur de projets

L'explorateur de projets permet de naviguer vers d'autres éléments où sont stockés des macros. Pour cela, on peut naviguer à travers une arborescence qui s'établit de la manière suivante :
Nom du fichier 1
a. Microsoft Excel Objects
b. Feuilles
c. Modules
Nom du fichier 2
a. Microsoft Excel Objects
b. Feuilles
c. Modules
Les macros peuvent être stockées dans des feuilles, dans des Microsoft Excel Objects ou bien dans des modules. Par exemple, si l'on veut qu'une macro s'applique sur l'onglet en cours, il faut la stocker dans l'objet "ThisWorkbook".
(ex: une macro qui désactive toujours les copier-coller dans l'onglet sur lequel navigue l'utilisateur).
Par défaut, les macros s'enregistrent dans le premier Module, qui se nomme Module1. Dans la capture d'écran, la macro qui s'affiche est également stockée dans le Module1.
2. La fenêtre Propriétés
La fenêtre propriétés est liée à l'explorateur de projets qui se trouve juste au dessus. Celle-ci permettra d'obtenir des informations sur le projet (Microsoft Excel Object, Onglet ou module) sélectionné.
3. L'éditeur de code
L'éditeur de code est la partie centrale de VBE.
C'est là qu'on va saisir, modifier ou supprimer des lignes de code.
Dans l'éditeur de code, chaque procédure peut être nommée Macro ou Fonction.
Au début de chaque programme, on retrouve constamment l'expression Sub (pour Sub Procedure, ou sous procédure). et à la toute fin End Sub.
Sub macro1
'Mon code ici
End Sub
Dans l'éditeur de code, une macro se présente généralement de la même manière :
La déclaration, ou définition des variables
L'initialisation des variables
L'enchainement des évènements, avec ou sans conditions
'début de la macro
Sub macro1
'1. Déclaration des variables
Dim IndexMontantUnitaireProratise As Integer
Dim IndexQuantiteCol As Integer
Dim PremiereLigne As Integer
Dim DerniereLigne As Integer
Dim Ws As Worksheet
'2. Initialisation des variables
IndexQuantiteCol = 10
IndexMontantUnitaireProratise = 11
PremiereLigne = 6
DerniereLigne = Ws.UsedRange.Rows.Count
'3. L'enchainement des évènements
For Produit = PremiereLigne To DerniereLigne
'Supprime les cellules sans montant et les remplace par des vides sur 6pCo
If Ws.Cells(Produit, MontantHTP9pCol) = 0 Then
Ws.Cells(Produit, MontantHTP9pCol) = ""
End If
'Supprime les cellules sans montant et les remplace par des vides sur 9pCo
If Ws.Cells(Produit, MontantHTP6pCol) = 0 Then
Ws.Cells(Produit, MontantHTP6pCol) = ""
End If
'fin de la macro
End Sub
Nb : il est nécessaire de commenter régulièrement son code afin de faciliter la maintenance de celui-ci et un éventuel transfert de compétences vers une personne extérieure qui devrait utiliser la macro sans l'avoir créée.
Pour commenter son code, on doit mettre le préfixe " ' ".
' ceci est un commentaire afin de mieux comprendre la macro
Nb :Dans l'éditeur de code, plusieurs Macros ou fonctions peuvent se succéder.
4. La fenêtre d'exécution

La fenêtre d'exécution est peu connue de ceux qui travaillent avec VBA. Elle est pourtant rudement pratique !
Comme son nom l'indique, elle permet d'exécuter seulement une instruction, ou plus, afin d'aider à comprendre comment la macro fonctionne.
Ex : vous ne savez pas sur quel onglet la macro est actuellement en train de travailler ? Il suffit de saisir Ws.Name, précédé par un point d'interrogation, et l'éditeur VB vous retournera le nom de l'onglet sur lequel il travaille.
Vous ne savez pas quelle est la valeur de la variable "DerniereLigne" ? Ecrivez l'instruction suivante :
?DerniereLigne.Value
La réponse devrait s'afficher juste en dessous !
5. La fenêtre d'espions

La fenêtre d'espions est également très pratique. Avant de l'expliquer, il est nécessaire d'expliquer ce qu'est un espion.
Un espion (ou Watcher, en anglais) est une fonction d'observation positionnée sur une variable afin de connaitre sa valeur.
Proche de la fenêtre d'exécution dans son rôle, la fenêtre d'espions permet de connaitre la valeur des variables souhaitées en temps réel.
Dans l'exemple ci-dessus, le développeur a inséré des espions sur les variables suivantes : DivisionMontantParQuantite, PremiereLigne, Produit, Ws.
Il est également possible d'insérer un espion sur une intersection, sans qu'elle soit une variable pour autant. C'est le cas de Ws.Cells(Produit,MontantHTP6pCol).Value sur lequel un espion retourne la valeur 2678.94.
En conclusion, vous savez désormais comment utiliser l'éditeur VBE (Visual Basic Editor) afin de développer ou déboguer une macro.
Pour une formation Excel VBA, contactez nos experts au 01 85 53 82 58.
Vous pouvez aussi vous rendre sur le site de MYPE pour d'autres informations sur VBA.
Comments