Vous êtes sur la page 1sur 11

PROGRAMMATION VBA-EXCEL

I. LES BASES ................................................................................................... 2


A. CONCEPT D’OBJET EN VBA ........................................................................................... 2
B. LES VARIABLES ............................................................................................................ 3
C. LES CONSTANTES......................................................................................................... 4
D. LES CONDITIONS .......................................................................................................... 4
E. LES BOUCLES ............................................................................................................... 5
II. USAGE PRATIQUE DES CONNAISSANCES FONDAMENTALES ................... 9

1
I. LES BASES
La programmation VBA-Excel est l’un des langages de programmation orienté objet.
La notion d’objet est toute simple, tout comme dans la vie réelle où nous avons des
objets autour de nous (Ex : voiture, chaise, porte …), il en est de même pour ce langage
(Ex : classeur Excel, feuille de calcul, plage de cellule, cellule, graphique …). Pour
pouvoir agir sur ces objets nous utiliserons leurs propriétés ainsi que des méthodes.
A. Concept d’objet en VBA
Prenons l’exemple d’un livre (objet de la vie réelle). Si une personne prononce le mot
« livre » nous faisons chacun une représentation d’un livre quelconque dans notre
esprit. Si la personne disait plutôt un livre rouge de 50 pages ; nous aurons tout le
monde la même image du livre en esprit. Pourquoi ? Tout simplement parce que cet
objet a été décrit par ses caractéristiques (Propriétés). Les propriétés c’est tout ce qui
propre à un objet donné (Ex : couleur d’un livre, nombre de pages, poids du livre, taille,
nom …). On peut effectuer des actions sur un objet (Méthodes). Ouvrir le livre, Fermer
le livre, le Déplacer, le Nettoyer, le Lire sont des méthodes qu’on peut appliquer sur
l’objet Livre.
Les collections représentent un ensemble d’objets. Ex : « Livre » est un objet de la
collection « Livres », l’objet « Worksheet » fait parti de la collection « Worksheets »
Revenons maintenant sur Excel, et prenons l’exemple d’un classeur ; un programme
VBA peut ainsi créer une feuille de calcul Excel en appliquant la méthode Add (ajouter)
à la collection WorkBooks et déterminer les propriétés de ce classeur (son nom, ses
options de protection, le nombre de feuilles qui le composent, etc.)
Pour accéder à une propriété ou une méthode d’un objet procédez comme suit :
nom_Collection(IndexObjet).propriété ou nom_Collection(IndexObjet).méthode
Ex : Livre1.Ouvrir Livres(‘’VBA‘’). Ouvrir Livre1.NombredePages
Worksheets.Add Worksheets.count (propriété renvoyant le nombre
d’éléments d’une collection)
Quelques objets Excel : Classeur, feuille de calcul, plage de cellules, cellule, graphique…
Quelques objets VBA : ListBox, ComboBox, Dictionnaires, Tableaux, userform, fichiers
systèmes, tous les contrôles de formulaire …

2
B. Les Variables
Lors du développement de vos programmes vous aurez besoin de stocker des
informations afin de les réexploiter ultérieurement dans le programme. Ces données
peuvent évoluer tout au long du programme d’où l’importance des variables pouvant
s’adapter à ces différentes modifications.
Différents types de données peuvent être stockées dans des variables, pour des soucis
d’efficacité du programme et de débogage il est recommandé de toujours typer vos
variables. La déclaration du type de variables se fait comme suit :
Dim nomVariable as type
Dim MaPlage As Object ‘variable de type Object
Les types de variable sont :
Byte, Integer et Long pour les entiers
Single, Double et Currency pour les réels ;
Boolean pour les booléens (True ou False)
String pour les chaînes de caractères
Date pour les dates
Object pour faire référence à un objet

Portée des variables


Pour qu’une variable soit accessible dans l’ensemble de cotre projet elle doit
être déclarée au début d’un module, utilisez le mot clé « Public » lors de sa
déclaration selon la syntaxe :
Public nomVariable as Type

Public Age as Integer


Sub noms ()
Age = 24
End Sub

3
C. Les Constantes
Les constantes permettent de stocker des valeurs fixes non évolutives. La TVA
par exemple peut être une constante dans l’un de vos programmes. La valeur
3,14 ou pi est une constante que vous pouvez également créer. Les constantes ne
peuvent pas être modifiées après leur déclaration. La syntaxe suivante est utilisée
pour déclarer les constantes :
Const nomConstante as Type = valeur
Ex : Const pi As Integer = 3,14
D. Les Conditions
Les conditions permettent de tester des valeurs ou sur l’état d’une cellule, d’une
plage de cellules, d’une feuille de calcul ou d’un classeur.
Conditions If … Else … End if
La syntaxe se présente comme suit :
If condition then
Instructions
Else
Instructions
End if

If condition_1 Then
Instructions_1
ElseIf condition_2 Then
Instructions_2
ElseIf condition_3 Then
Instructions_3 ...
Else
Instructions_n
End If

4
Select Case
La structure conditionnelle « Select Case » permet tout comme la condition « If …
Else … End if » permet de tester également des valeurs ou des états des objets. Son
utilisation devient alors très intéressante quand le nombre de conditions à tester
devient plus important
Select Case Expression
Case valeur1
Instructions
Case valeur2
Instructions ...
Case valeurn
Instructions
Case Else
Instructions
End Select
E. Les Boucles
Les boucles permettent de répéter une série d’opération. Différents types de boucles
existent en VBA-Excel
Boucles Conditionnelles
Ces boucles répètent une série d’instructions tant qu’une condition est vraie ou
jusqu’à ce que la condition la condition soit vraie
 La boucle While...Wend
La structure de contrôle While...Wend permet de répéter une série
d’instructions tant qu’une condition spécifiée est remplie. C’est l’une des
structures les plus utilisées pour automatiser les tâches répétitives. Elle
permet de répéter un traitement sur une chaîne, un format, un objet, etc.,
déterminé dans un document. La syntaxe de la structure While...Wend est la
suivante :

5
While Condition
Série d’instructions
Wend

Les opérateurs relationnels de Visual Basic Opérateur relationnel Signification


= Égal à
> Supérieur à
< Inférieur à
<> Différent de
>= Supérieur ou égal à
<= Inférieur ou égal à
Like Identique à (pour comparer des chaînes de caractères)
Is Égal à (pour comparer des variables objet

 La boucle Do...Loop
La structure de contrôle Do...Loop est semblable à While...Wend, mais offre
plus de souplesse car elle peut se décliner sur quatre modes différents :
o Do While...Loop. Tant que la condition est respectée, la boucle
s’exécute.
Do While Condition
Série d’instructions
Loop
o Do Until...Loop. Jusqu’à ce que la condition soit réalisée, la boucle
s’exécute.

Do Until Condition

6
Série d’instructions
Loop
o Do...Loop While. La boucle s’exécute, puis se répète, tant que la
condition est respectée.
Do
Série d’instructions
Loop While Condition
o Do...Loop Until. La boucle s’exécute, puis se répète, jusqu’à ce que la
condition soit respectée.
Do
Série d’instructions
Loop Until Condition
 Boucles For
o La boucle For...Next
La structure de contrôle For...Next permet de répéter une série d’instructions
un nombre de fois déterminé dans le code, en utilisant un compteur. Utilisez
l’instruction For...Next selon la syntaxe suivante :
For compteur = x To y Step Pas
Série d’instructions
Next compteur
« Pas » représente le pas d’incrémentation, si Step Pas est omis alors la boucle
s’incrémente de +1 à chaque passage

o La boucle For Each...Next


Cette structure de contrôle permet de généraliser un traitement à l’ensemble des
objets d’une collection et s’utilise selon cette syntaxe :

7
For Each élément In Collection
Instructions
Next élément
Où élément est une variable de type Object ou Variant, utilisée pour représenter
chaque objet de la collection dans les Instructions, et Collection le nom de la
collection d’objets.
Les Instructions sont exécutées une fois pour chaque objet de la collection. La
procédure suivante utilise une structure For Each...Next pour appliquer une couleur
de police rouge
(ColorIndex = 3) à tous les objets Cells de l’objet Selection (toutes les cellules de la
sélection en cours) dont la valeur est supérieure à 1 000.
Sub FortesValeursEnRouge()
Dim cellule As Range
For Each cellule In Selection.Cells
If cellule.Value > 1000 Then
cellule.Font.ColorIndex = 3
End If
Next cellule
End Sub

Instruction de Bloc With … End With


Les instructions With et End With encadrent l’ensemble des propriétés d’un objet.
Comme tout mot clé, elles apparaissent en bleu dans la fenêtre de code. La structure
With...End With est utilisée pour paramétrer les propriétés d’un objet sans avoir à
répéter la référence à cet objet pour chaque propriété. Syntaxe utilisée :
With Objet
Propriétés de l’objet
End With

8
II. Usage Pratique des Connaissances Fondamentales
Le programme ci-dessous contient toutes les notions vues dans ce cours. Prêtez-y
attention, étudiez-le afin d’assimiler de façon pratique les différentes notions de base.

9
10
11

Vous aimerez peut-être aussi