Vous êtes sur la page 1sur 40

Université Assane Seck de Ziguinchor

(UASZ)

Cours de programmation événementielle: VBA


Licence 3 en Management Informatisé des Organisations (MIO)
Enseignant: Dr Abel DIATTA

Programma'on événemen'elle: VBA


1
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
Université Assane Seck de Ziguinchor
(UASZ)

Cours de programmation événementielle: VBA


Prérequis
Ø Les bases de l’algorithmie:
§ Variables;
§ Types de données;
§ Procédures et fonc7ons;
Ø Le langage Visual Basic;
Ø Notions de cellules et de plage de cellules en Excel;
Ø Etc.
Programma'on événemen'elle: VBA
2
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
Université Assane Seck de Ziguinchor
(UASZ)

Cours de programmation événementielle: VBA


Objectifs du cours
A la fin du cours, l’apprenant qui aura suivi les CM, les TD et TP, doit pouvoir:
Ø Créer des macros en VBA;
Ø Lancer l’exécution de macros à partir d’autres macros;
Ø Travailler sur des applications de Microsoft Office à partir de VBA;
Ø Automatiser l’exécution de macros;
Ø Etc.

Programma'on événemen'elle: VBA


3
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
Université Assane Seck de Ziguinchor
(UASZ)

Cours de programmation événementielle: VBA


Plan
I - Introduction au langage Visual Basic
II - Structures de contrôle
III - Procédures et Fonctions
IV – Tableaux et chaînes de caractères
IV – Interfaces graphiques

Programma'on événemen'elle: VBA


4
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic

I. 1. Notions de VB et de VBA
I. 2. Variables et types de données en VB
I. 3. Opérateurs
I. 4. Lecture et affichage
I. 5. Référencement de cellules, de plage de cellules et de
feuilles

Programma'on événemen'elle: VBA


5
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic

I. 1. Notions de VB et de VBA

Programma'on événemen'elle: VBA


6
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 1. Notions de VB et de VBA
v Visual Basic est Langage de programma3on conçu pour l’u3lisa3on interac3ve de terminaux. Il s’est
développé à par3r du langage BASIC (Beginner’s All-purpose Symbolic Instruc3on Code).
L’u3lisa3on très répandue du langage BASIC conduisit à de nombreuses améliora3ons donnant
ainsi naissance à Visual Basic (VB) en 1991 et à la version 6 appelée Visual Basic 6 en 1998 (VB6).

v Il y a trois sortes de Visual Basic disponibles de chez MicrosoL :


Ø VB for Applica3ons (VBA): il est u3lisé dans MicrosoL Office pour programmer les applica3ons
comme Word, Excel et Access et pour passer des commandes entre les applica3ons; c'est un
sous-ensemble de Visual Basic;
Ø VB Scrip3ng Edi3on: il est u3lisé dans seulement certaines applica3ons spécialisées sur
Internet, comme Outlook; c'est encore plus restreint que VBA;
Ø Visual Basic ordinaire: il est aussi appelé le Visual Basic IDE (Integrated Development
Environment)

Programma'on événemen'elle: VBA


7
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 1. Notions de VB et de VBA
Puisque VBA n’est que du VB mis en place pour des applica<ons
spécifiques (Word, Excel, Access), pour faire alors du VBA, il convient de
comprendre d’abord les no<ons de base du langage Visual Basic. Ces
no<ons sont en réalité communes à tous les langages. Il s’agit des
no<ons de variables, de types de données, d’opérateurs, etc.

Programma'on événemen'elle: VBA


8
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic

I. 2. Variables et types de données en VB

Programma'on événemen'elle: VBA


9
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Un type de données est une façon de représenter une donnée. Il définit le format et la nature des
données ainsi que les opérateurs qui peuvent s’appliquer à ces données.
Comme tout langage, Visual Basic propose un certain nombre de types. Il s'agit notamment :

v Byte : un enDer entre 0 et 255. Il occupe 1 octet en mémoire;


v Boolean : un booléen qui prend True ou False. Il occupe 2 octets en mémoire;
v Integer : un enDer entre -32768 et 32768. Il occupe 2 octets en mémoire;
v Long : un enDer entre -2 147 483 648 et 2 147 483 648. Il occupe 4 octets en mémoire;
v Single : un décimal de peDte taille. Il occupe 4 octets en mémoire;
v Double : un décimal de grande taille. Il occupe 8 octets en mémoire;

Programma'on événemen'elle: VBA


10
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Un type de données est une façon de représenter une donnée. Il définit le format et la nature des
données ainsi que les opérateurs qui peuvent s’appliquer à ces données.
Comme tout langage, Visual Basic propose un certain nombre de types. Il s'agit notamment :

v Currency : un décimal avec peu de valeurs après la virgule. Il occupe 8 octets;


v Date : une date entre le 1ier janvier 100 et le 31 décembre 9999. Il occupe 8 octets;
v Decimal : un nombre décimal. Il occupe 12 octets;
v Object : une référence à un objet quel que soit son type. Il occupe 4 octets;
v String : chaine de caractères entre 0 et 2 milliard de caractères. Il occupe 10 + longueur de la chaine;
v Variant : valeur numérique jusqu'au type double. Il peut aussi servir pour les caractères. Il occupe 16
octets.
Le type Variant est le type de base le plus large. Une variable de type Variant peut contenir n'importe
quel type de données. Par contre elle consomme trop d'espace mémoire.

Programma'on événemen'elle: VBA


11
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Déclara'on explicite de variables en Visual Basic
Déclarer une variable, c’est lui réserver un emplacement mémoire. Pour déclarer une variable,
Visual Basic uDlise deux mots clés : Dim (qui veut dire dimension) et as selon la syntaxe suivante :

Dim nom_de_variable as Type_de_la_variable


Ou nom_de_variable représente l’idenDficateur de la variable et Type_de_la_variable est un des
types définis définis plus haut et réprésente la nature des données pouvant être stockées dans
nom_de_variable.
Exemple:
v DéclaraDon d’une variable n de type enDer: Dim n as Integer
v DéclaraDon d’une variable ch de type chaine de caractères: Dim ch as String
v DéclaraDon d’une variable r de type réel: Dim r as Double

Programma'on événemen'elle: VBA


12
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Déclara'on explicite de variables en Visual Basic
Il est possible de déclarer plusieurs variables sur une même ligne.
Exemple 1: si n et m sont deux variables toutes de type enDer, leur déclaraDon peut se faire de deux
manières :
Dim n as Integer
Ou bien Dim n as Integer, m as Integer
Dim m as Integer

Exemple 2: si b et chaine sont deux variables de types respecDfs booléen et chaîne de caractères,
leur déclaraDon peut se faire de deux manières :
Dim b as Boolean
Ou bien Dim b as Boolean, chaine as String
Dim chaine as String

Programma'on événemen'elle: VBA


13
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Déclara'on explicite de variables en Visual Basic
Remarque 1:
« Dim n, m as Integer » n’est pas équivalente à « Dim n as Integer, m as Integer »
En effet, « Dim n, m as Integer » veut dire que n est de type Variant (qui est le type par défaut) et
que m est de type Integer. En d’autres termes, les deux déclaraDons sont différentes.

Remarque 2: alors que dans d’autres langages comme le C, le Pascal par exemple, nous avons un
point virgule à la fin de la ligne de déclaraDon, en Visual Basic, la déclaraDon prend fin juste après
le type (sans point virgule). Car chaque langage a ses spécificités qu'il faudra impéraDvement
respecter.

Programma'on événemen'elle: VBA


14
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Déclara'on implicite de variables en Visual Basic
Il existe une autre méthode de déclarer des variables. Pour ce faire, il suffit d'ajouter juste après le nom de
la variable, un symbole spécifique. Ce symbole permet en même temps de préciser le type de la variable.
Voici la liste des symboles avec le type de variable auxquelles il se rapportent :

Exemples

%: Integer Dim n as Integer Equivalent à n % = 20


&: Long n = 20
!: Single
#: Double Dim s as String Equivalent à n $ = ‘’Bonjour’’
@: Currency s = ‘’Bonjour’’
$: String

Programma'on événemen'elle: VBA


15
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Portée d’une variable en Visual Basic
Lorsqu’une variable est déclarée, elle a une portée (domaine de visibilité) bien définie. Tout
dépend de la manière de la déclarer et de l’emplacement de celle-ci.
v Dans une procédure par exemple, lorsqu’une variable est déclarée à l'aide de l'instrucDon
Dim, sa portée se limite seulement à cehe procédure. Dans ce cas, la variable est dite locale.
Elle est iniDalisée à chaque appel de la procédure et détruite lorsque celle-ci se termine ( sauf
dans le cas où la déclaraDon est faite avec le mot clé Sta'c en lieu et place de Dim). Dans un
tel scénario (c’est-à-dire à l’intérieur d’une procédure), les termes Dim et Private sont
équivalents.
v Si une variable est déclarée dans la secDon Général/DéclaraDons d'une feuille ou d'un module
en uDlisant l'instrucDon Dim (ou Private), la variable est dite locale au module. Cehe variable
est disponible pour toutes les procédures de la feuille ou du module, mais pas pour les autres
feuilles du projet.
v Enfin, si une variable est déclarée dans la secDon Général/DéclaraDons d'un module (et non
d'une feuille) en uDlisant l'instrucDon Public au lieu de Dim, elle devient accessible par toutes
les feuilles et tous les modules de l'applicaDon. On dit qu'elle est globale.

Programma'on événemen'elle: VBA


16
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Déclara'on de constantes en Visual Basic
La déclaraDon d’une constante se fait avec le mot clé Const suivi du nom de la constante, à laquelle
est affectée une valeur. Les constantes suivent les mêmes règles de portée que les variables, c’est-à-
dire que la portée d’une constante dépend de l'endroit où elle est définie.
Le mot clé Const peut être précédé des opDons Private, Public, etc. selon la portée souhaitée pour la
constante.

Exemple:
Dim rayon as Double, circonf as Double
Const pi = 3.14
circonf = 2*pi*rayon

Programma'on événemen'elle: VBA


17
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 2. Variables et types de données en VB
Fonc'ons de conver'on
A chacun des types définis plus haut, Visual Basic associe une foncDon permehant de converDr une
donnée en ce type. Ainsi, nous avons:

v CByte: converDt une donné en Byte;


v CInt: converDt une donné en Integer; Exemple:
v CLng: converDt une donné en Long; Const x = 2.51
v CSng: converDt une donné en Single; Dim n as Integer
v CDouble: converDt une donné en Double; n = CInt(x)
v CCur: converDt une donné en Currency;
v CStr: converDt une donné en String; A ce stade, n vaut 2
v CDate: converDt une donné en Date;
v CBool: converDt une donné en Boolean;
v CVar: converDt une donné en Variant.
Programma'on événemen'elle: VBA
18
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic

I. 3. Opérateurs

Programma'on événemen'elle: VBA


19
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 3. Opérateurs
Les types d’opérateurs en Visual Basic sont les mêmes que ceux uDlisés dans les langages vus jusqu’ici
(Pascal, C, etc.).
Opérateurs arithmé9ques: Opérateurs de comparaison:
+ : addiDon = : égal
- : soustracDon < : inférieur
* : mulDplicaDon <= : inférieur ou égal
/ : division avec un résultat réel > : supérieur
Mod : reste de la division de deux enDers >= : supérieur ou égal
^ : puissance <> : différent
Opérateurs logiques:
or : ou
and : et
not : négaDon

Programma'on événemen'elle: VBA


20
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic

I. 4. Lecture et affichage

Programma'on événemen'elle: VBA


21
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
Le langage Visual Basic uDlise respecDvement InputBox et MsgBox pour saisir et afficher des données. Ces
deux foncDons permehent une interacDvité entre l’uDlisateur et le programme à travers une boite de
dialogue. Elles ont toutes deux des arguments qui permehent de préciser le type de fenêtre qui sera
affiché.
MsgBox: beaucoup d’arguments sont disponibles. Les plus fréquents sont:
v vbOkOnly: affiche un bouton OK (opDon par défaut)
v vbOkCancel: affiche 2 boutons - OK et Cancel
v vbYesNoCancel: affiche 3 boutons – Yes, No et Cancel
v vbYesNo: affiche 2 boutons – Yes et No
v vbQuesIon: affiche une quesDon
v vbInformaIon: affiche un message d’informaDon
v vbRetryCancel: affiche 2 boutons – Retry et Cancel
v Etc.
Programma'on événemen'elle: VBA
22
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
MsgBox::
Exemple 1:
MsgBox(‘’Nous sommes en L3 MIO’’)
Exemple 2:
Dim n as Integer
n = MsgBox (‘’Etes-vous saCsfaits de l’accueil’’, vbYesNo, ’’Fenêtre d’informaCons’’)

If n = vbYes Then
MsgBox(‘’Ok, donc c’est bien ‘’ )
Else
MsgBox(‘’ Ah bon ! Donc nous sommes désolés, veuillez nous excuser. ‘’ )
End If

Programma'on événemen'elle: VBA


23
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox: beaucoup d’arguments sont disponibles. Les plus fréquents sont:
InputBox ( prompt [, 'tle ] [, default ] [, le? ] [, top ] [, type ] )
v Prompt: précise le message à afficher dans la boite de dialogue
v Title: affiche le Dtre de la boite de dialogue. En cas d’omission de cet argument, le Dtre de la boite de dialogue
est « Input »
v Default: spécifie une valeur à afficher sur la zone de texte lorsque la boite de dialogue s’affiche. En cas
d’omission, la zone de texte est laissée vide
v LeN: spécifie une posiDon X en abscisse de la boite de dialogue par rapport au coin supérieur gauche de l’écran
v Top: spécifie une posiDon Y en ordonnée de la boite de dialogue par rapport au coin supérieur gauche de
l’écran
v Type: spécifie le type de données retourné. En cas d’omission, le type retourné est du texte. Pour ahribuer une
valeur à l’argument « Type », le symbole « := » est uDlisé suivi de la valeur.
v Etc.
Programma'on événemen'elle: VBA
24
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox: les différentes valeurs de l’argument « Type » sont entre autres:
0: une formule est ahendue
1: un nombre est ahendu
2: un texte est ahendu
4: une valeur logique (True or false) est ahendue
8: une référence de cellule est ahendue
16: une valeur d'erreur est ahendue
64: un tableau de valeurs est ahendu
Exemple 1:
nom$ = InputBox("Donnez votre nom et prénom", "Vos informaDons personnelles")

Programma'on événemen'elle: VBA


25
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox: les différentes valeurs de l’argument « Type » sont entre autres:
0: une formule est ahendue 1: un nombre est ahendu
2: un texte est ahendu 4: une valeur logique (True or false) est ahendue
8: une référence de cellule est ahendue 16: une valeur d'erreur est ahendue
64: un tableau de valeurs est ahendu
Exemple 2:
v Dim age as Integer
age = InputBox("Donnez votre âge", "Age")
v Dim taille as Double
taille = InputBox("Donnez votre taille", "Taille d’une personne")
Range("A3" ) = taille è la valeur saisie pour la taille est placée dans la cellule A3
Cells(2,5) = taille è la valeur saisie pour la taille est placée dans la cellule se trouvant à la ligne 2 et la colonne 5

Programma'on événemen'elle: VBA


26
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox:
Exemple: voici un tableau Excel contenant un ensemble de produits. Nous souhaitons remplir les colonnes B (« Prix
unitaire ») et C (« QuanDté ») en uDlisant un code VBA. Après le remplissage, notre programme calculera les prix totaux
hc et hors taxes (HT).
Ø Prix total hc = Prix unitaire x QuanDté
Ø Prix total HT = Prix total hc (1 – TVA)

Programma'on événemen'elle: VBA


27
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox:
VBA uDlise les macros pour résoudre un tel problème. Une macro est un programme, c’est-à-dire une suite
d’instrucDons qui s’enchaînent dans le but de réaliser une ou des tâches bien déterminées. Une macro VBA se
présente comme suit:
Sub nom_de_la_macro ()

ensemble d’instructions

End Sub

Ø Sub et End Sub sont des mots clés et réservés deu VBA permehant respecDvement de débuter et de terminer la
macro;
Ø Le mot « nom_de_la_macro » représente l’idenDficateur de la macro.
NB: nous verrons les macros plus en détails dans les chapitres à venir
Programma'on événemen'elle: VBA
28
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox:
Ainsi, pour résoudre l’exercice précédent de la diaposiDve 23, nous pouvons avoir une macro contenant le code qui
permet de répondre aux différentes quesDons.
Pour notre cas, nous uDlisons 3 macros: une pour remplir le prix unitaire, une autre pour remplir la quanDté et une
autre pour calculer les prix totaux hc et HT.
Première macro:

Sub prixUnitaire ()
Cells(2, 2) = InputBox("Donnez le prix d'une pressea " , "Prix unitaire")
Cells(3, 2) = InputBox("Donnez le prix d'une Rani " , "Prix unitaire")
Cells(4, 2) = InputBox("Donnez le prix d'une Gaelle Chili " , "Prix unitaire")
Cells(5, 2) = InputBox("Donnez le prix d'une Gazelle Bière " , "Prix unitaire")
Cells(6, 2) = InputBox("Donnez le prix d'une Sprite GM " , "Prix unitaire")
Cells(7, 2) = InputBox("Donnez le prix d'une Vimto " , "Prix unitaire")
End Sub

Programma'on événemen'elle: VBA


29
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox:

Ou encore

Première macro:

Sub prixUnitaire ()
Range("B2") = InputBox("Donnez le prix d'une pressea " , "Prix unitaire")
Range("B3") = InputBox("Donnez le prix d'une Rani " , "Prix unitaire")
Range("B4") = InputBox("Donnez le prix d'une Gaelle Chili " , "Prix unitaire")
Range("B5") = InputBox("Donnez le prix d'une Gazelle Bière " , "Prix unitaire")
Range("B6") = InputBox("Donnez le prix d'une Sprite GM " , "Prix unitaire")
Range("B7") = InputBox("Donnez le prix d'une Vimto " , "Prix unitaire")
End Sub

Programma'on événemen'elle: VBA


30
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox:
Deuxième macro:

Sub quantite_payee ()
Cells(2, 3) = InputBox("Donnez la quantité payée pour une pressea", "Quantité payée")
Cells(3, 3) = InputBox("Donnez la quantité payée pour une Rani", "Quantité payée")
Cells(4, 3) = InputBox("Donnez la quantité payée pour une Gaelle Chili", "Quantité payée")
Cells(5, 3) = InputBox("Donnez la quantité payée pour une Gazelle Bière", "Quantité payée")
Cells(6, 3) = InputBox("Donnez la quantité payée pour une Sprite GM", "Quantité payée")
Cells(7, 3) = InputBox("Donnez la quantité payée pour une Vimto", "Quantité payée")
End Sub

De même, les termes Cells(2,3); Cells(3,3); Cells(4,3); Cells(5,3); Cells(6,3) et Cells(7,3) peuvent
être remplacés respectivement par Range("C2"); Range("C3"); Range("C4"); Range("C5");
Range("C6") et Range("C7").

Programma'on événemen'elle: VBA


31
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 4. Lecture et affichage
InputBox:
Troisième macro: Sub prixttc_et_prixht ()
Cells(2, 4) = Cells(2, 2) * Cells(2, 3)
Cells(3, 4) = Cells(3, 2) * Cells(3, 3)
Cells(4, 4) = Cells(4, 2) * Cells(4, 3)
Cells(5, 4) = Cells(5, 2) * Cells(5, 3)
Cells(6, 4) = Cells(6, 2) * Cells(6, 3)
Cells(7, 4) = Cells(7, 2) * Cells(7, 3)

Cells(2, 5) = Cells(2, 2) * Cells(2, 3) * (1 – Range("D10")


Cells(3, 5) = Cells(3, 2) * Cells(3, 3) * (1 - Range("D10")
Cells(4, 5) = Cells(4, 2) * Cells(4, 3) * (1 - Range("D10")
Cells(5, 5) = Cells(5, 2) * Cells(5, 3) * (1 - Range("D10")
Cells(6, 5) = Cells(6, 2) * Cells(6, 3) * (1 - Range("D10")
Cells(7, 5) = Cells(7, 2) * Cells(7, 3) * (1 - Range("D10")
End Sub
Programma'on événemen'elle: VBA
32
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic

I. 5. Référencement de cellules, de plage de cellules


et de feuilles dans Excel

Programma'on événemen'elle: VBA


33
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 5. Référencement de cellules, de plage de cellules et de feuilles dans Excel
La référence à une cellule ou une plage de cellules dans le style de référence a1 peut se faire à l’aide de la
propriété Range comme le montre le tableau ci-dessous.

Référence Signification
Range("A1") Cellule A1
Range("A1:B5") Cellules A1 à B5
Range("C5:D9,G9:H16") Cellules C5 à D9 et G9 à H16
Range("A:A") Colonne A
Range("1:1") Ligne 1
Range("A:C") Colonnes A à C
Range("1:5") Lignes 1 à 5
Range("1:1,3:3,8:8") Lignes 1, 3 et 8
Range("A:A,C:C,F:F") Colonnes A, C et F
Programma'on événemen'elle: VBA
34
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 5. Référencement de cellules, de plage de cellules et de feuilles dans Excel
Les cellules, plages de cellules ou encore les feuilles, sont des objets manipulés dans VBA. Ainsi, le langage VBA
dispose de type d’objets permehant de les définir comme variables uDlisables dans un programme. Ces types
d’objets sont entre autres:

Ø Range: ce type d’objet permet de définir une variable permehant de référencer une cellule ou une plage de
cellules. Range prend en paramètres, une cellule ou une plage de cellules;
Ø Worksheets: ce type d’objet permet de définir une variable permehant de référencer une feuille. Il prend en
paramètres une feuille;
Ø Workbooks: ce type d’objet permet de définir une variable permehant de référencer un classeur. Il prend en
paramètres un classeur;

Programmation événementielle: VBA


35
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 5. Référencement de cellules, de plage de cellules et de feuilles dans Excel
Exemple 1:
Ø Avec Workbooks:
Workbooks("mon_classeur_test") ‘fait reference au classeur nommé “mon_classeur_test” situé sur le repertoire de travail
Ø Avec Worksheets:
Workbooks("mon_classeur_test").Sheets("feuil3") ‘fait reference à la feuille 3 du classeur “mon_classeur_test”
Ø Avec Range:
Dim maplage As Range ‘ declare une variable maplage de type Range
Set maplage = Worksheets("Feuil2").Range("A1:D5") ‘ affecte à la variable, la plage (A1:D5) de la feuille 2 du même classeur
maplage.Font.Bold = True ‘ met le contenu de cette plage (A1:D5) en gras

Ø Workbooks("mon_classeur_test").Sheets("Feuil1").Range("B4:B9").Interior.Color = RGB(10, 27, 17) ‘couleur de remplissage


Ø Workbooks("Classeur_de_test").Sheets("Feuil1").Range("C4:C9").Font.Color = RGB(232, 70, 175) ‘ couleur de police

Programma'on événemen'elle: VBA


36
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 5. Référencement de cellules, de plage de cellules et de feuilles dans Excel
Exemple 2: nous considérons le tableau des produits précédent. Avec du code VBA, nous allons mener des mises en forme
sur le tableau suivant.

Les mises en forme que nous allons apporter sont les


suivantes:
Ø Mehre en gras, à la taille 14 et de fond rouge la
ligne d’en-tête;
Ø Ecrire les produits en gras-italique avec un fond
marron et une police blanche;
Ø Ecrire « Total » à la police « Bookman Old Style »,
à la taille 18 et en bleu
Ø Ecrire la colonne des prix totaux HT sur fond vert

Programmation événementielle: VBA


37
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 5. Référencement de cellules, de plage de cellules et de feuilles dans Excel
Exemple 2
:

Sub mise_en_forme()

Dim ligneEntete As Range


Set ligneEntete = Worksheets("feuil1").Range("A3:E3")
ligneEntete.Interior.Color = RGB(255, 47, 151)
ligneEntete.Font.Bold = True
ligneEntete.Font.Size = 14
Workbooks("Classeur_de_test").Sheets("feuil1").Range("A4:A9").Font.Bold = True
Workbooks("Classeur_de_test").Sheets("feuil1").Range("A4:A9").Font.Italic = True
Workbooks("Classeur_de_test").Sheets("feuil1").Range("A4:A9").Interior.Color = RGB(164, 82, 0)
Workbooks("Classeur_de_test").Sheets("feuil1").Range("A4:A9").Font.Color = RGB(255, 255, 255)
Worksheets("feuil1").Range("A10:C10").Font.Name = "Bookman Old Style"
Worksheets("feuil1").Range("A10:C10").Font.Size = 18
Worksheets("feuil1").Range("A10:C10").Font.Color = vbBlue
Worksheets("feuil1").Range("E4:E10").Interior.Color = RGB(0, 117, 58)

Programma'on événemen'elle: VBA


End Sub 38
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
I - Introduction au langage Visual Basic
I. 5. Référencement de cellules, de plage de cellules et de feuilles dans Excel
Exemple 2: ce code permet de transformer le premier tableau en ce tableau ci-dessous

Programma'on événemen'elle: VBA


39
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)
FIN PREMIERE PARTIE

Programma'on événemen'elle: VBA


40
Dr Abel DIATTA (Université Assane Seck de Ziguinchor)

Vous aimerez peut-être aussi