Vous êtes sur la page 1sur 27

Tableur pour l’Ingénieur

Aller plus loin avec les fonctions Excel


Automatiser les traitements avec VBA
Le modèle objet Excel
Propriétés et méthodes d’un objet
 De la même manière qu’en C++ ou en java, les objets
possèdent des propriétés et des méthodes
 L’objet « cellule » aura des propriété comme:
- sa taille, sa couleur, sa valeur, son contour,…
Range("A1").Interior.Color=vbBlue
 L’objet « cellule » comportera des méthodes pour sa
manipulation:
- copier, coller,…
Range("A1").clear

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

Pour accéder à la cellule A1 de la feuille1 du classeur actif:


ActiveWorkbook.Worksheets("Feuil1")
.Range("A1").Interior.Color=vbGreen

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

L’insérer à la Barre d’outils Accès rapide


Naviguer entre le classeur et l’éditeur

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)

Attention : si vous associez du code VBA directement à une


feuille, il ne pourra être exécuté que dans cette feuille
exclusivement

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

 Appel d’une procédure Sub


Call <NomSub ([Args])>

18 ESIGELEC/C. BERQUEZ
Syntaxe des procédures Function
 Function <NomFonction> ([arg1],[arg2],…,[argn]) as <Type>
Instructions
<NomFonction>=<expression>
End Function

 Appel d’une fonction


<Variable> = <NomFonction ([Args])>

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 feuille as Worksheet

 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

 Select Case <variable à tester>


Case <valeur1>
Bloc Instructions 1
Case <valeur2>
Bloc Instructions 2
Case Else
Bloc Instructions n
End Select

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

 +, -, /, *, \ (partie entière division), Mod (reste division), ^


(puissance)

 >, <, >=, <=, <>, =

 And, Or (ou inclusif), Not, Xor (ou exclusif)

27 ESIGELEC/C. BERQUEZ

Vous aimerez peut-être aussi