Académique Documents
Professionnel Documents
Culture Documents
3 ESIGELEC/C. BERQUEZ
Objets et collections
Une collection est un ensemble d’objets présentant les mêmes
caractéristiques
La collection «Worksheets » est l’ensemble de toutes les feuilles
(«Worksheet ») d’un classeur («Workbook »)
4 ESIGELEC/C. BERQUEZ
La hiérarchie des objets Excel
Principaux objets
Application
Workbooks
Workbook
Worksheets
Worksheet
Range
5 ESIGELEC/C. BERQUEZ
Les objets Range
Ce sont des cellules ou des plages de cellules
Range("A1")
Range("A1:C3")
Range("A1:C3,D4:E5,F6")
Range("E:E")
Range("1:3,6:6")
Et toutes les combinaisons de ce qui précède
6 ESIGELEC/C. BERQUEZ
Les objets Range
Peuvent être retournés par:
Cells : toutes les cellules
Rows : toutes les lignes
Columns : toutes les colonnes
ActiveCell : la cellule active
Selection : l’ensemble des cellules sélectionnées d’une feuille
Range("A1:B3").Select
Selection.clear
7 ESIGELEC/C. BERQUEZ
Les objets Range
Offset : plage décalée par rapport à une plage initiale
Resize : plage redimensionnée
8 ESIGELEC/C. BERQUEZ
Sélection des cellules et des plages
Sélection d’une plages de cellules:
Select
Adressage direct : plage figée
Range("A1").Select
Range("A1:B3").Select
Cells.Select –> toutes les cellules d’une feuille
Cells(4).Select –> la 4ème cellule du classeur (16383 colonnes sur une
feuille)
Cells(2,3).Select –> Intersection 2ème ligne et 3ème colonne
Range(Cells(1,1),Cells(3,3)).Select –> A1:C3
Cells(i,j).Select
Range(Cells(i,j),Cells(k,l)).Select
9 ESIGELEC/C. BERQUEZ
Sélection de cellules et de plages
Adressage direct
Rows.Select
Rows(1).Select
Rows("1:3").Select
Columns("A").Select
Columns(1).Select
Columns ("A:G").Select
10 ESIGELEC/C. BERQUEZ
Sélection des plages et des cellules
Adressage indirect
Range("A1").Offset(2,3).Select ->2 lignes en bas, 3
colonnes à droite
Range ("A1:G5").resize(2,3).Select -> Sélection de A1:C2
(2 lignes et 3 colonnes)
11 ESIGELEC/C. BERQUEZ
Propriétes utiles
Count
Range ("A1:C3").Cells.count ->9
Column
Range ("A1").Column -> 1
Row
Range ("A1:C3").Row -> 1
12 ESIGELEC/C. BERQUEZ
L’éditeur Visual Basic
Le faire apparaître
- Alt + F11
- Onglet Développeur/Visual Basic
13 ESIGELEC/C. BERQUEZ
L’éditeur Visual Basic
Explorateur de projet
Explorateur de
propriétés
Zone de développement
des modules
14 ESIGELEC/C. BERQUEZ
Les modules
Le code VBA se sera tapé dans un ou plusieurs modules
(clic droit dans l’explorateur de projets, insertion/Module)
15 ESIGELEC/C. BERQUEZ
Le langage Visual Basic
Les procédures
Le code est structuré au sein de sous-traitements appelés
« Procédures »
Procédures Sub
Effectuent un traitement sans retourner de résultat à l’appelant
Procédures Function
Retournent un résultat à l’appelant
17 ESIGELEC/C. BERQUEZ
Syntaxe des procédures Sub
Sub <NomSub> ([arg1],[arg2],…[argn])
Instructions
End Sub
18 ESIGELEC/C. BERQUEZ
Syntaxe des procédures Function
Function <NomFonction> ([arg1],[arg2],…,[argn]) as <Type>
Instructions
<NomFonction>=<expression>
End Function
19 ESIGELEC/C. BERQUEZ
Les variables
Type « Boolean »
Variables numériques
« Byte », « Integer », « Long », « Single », « Double »
Type « String »
Variables « objet »
Dim feuille As Worksheet
Type « Variant »
Les variables de ce type acceptent tous les types vus ci-
dessus, c’est le type par défaut des variables non déclarées
Gourmandes en ressources (mémoire et temps exécution)
20 ESIGELEC/C. BERQUEZ
Déclaration variables
Dim i as Boolean
Dim i as Integer, Dim j as Double
Dim i as Variant
21 ESIGELEC/C. BERQUEZ
Déclaration des variables
Dim <variable> as <Type>
Dim Taux as Double
Dim A as double, B as double
Dim A, B as double
(B double mais A Variant)
22 ESIGELEC/C. BERQUEZ
Portée d’une variable
Niveau procédure
Dim a as integer
Déclarée dans une procédure, utilisable exclusivement au sein de
la procédure où elle est déclarée
Niveau module
Déclarée dans la zone de déclaration du module
Niveau module privée
private a as integer
Utilisable au sein des procédure contenues dans le module où elle est
déclarée
Niveau module publique
public a as integer
Utilisable au sein des tous les modules du projet
23 ESIGELEC/C. BERQUEZ
Structures de contrôle
Condition
If… Then… Else… End If
24 ESIGELEC/C. BERQUEZ
Structures de contrôle
Les tests de condition
select case a
case is >0
msgbox "a positif"
case is <0
msgbox "a négatif"
case else
msgbox "a nul"
end select
25 ESIGELEC/C. BERQUEZ
Structures de contrôle
Les boucles
For <compteur> = <début> to <fin> [step <pas>]
Instructions
Next [<compteur>]
For Each <variable> in <nom collection>
Instructions
Next [<variable>]
While <condition>
Instructions
Wend
Do
Instructions
Loop until|while <condition>
26 ESIGELEC/C. BERQUEZ
Les opérateurs
27 ESIGELEC/C. BERQUEZ