Vous êtes sur la page 1sur 20

Visual Basic for Application

Les objets VBA

VBA-01: Programmation VBA 1


Les objets VBA

VBA est un langage de programmation orientée objet attaché à une


application. Tout est objet.

Exemple d’objets :

• EXCEL est un objet Application ;


• un classeur est un objet Workbook ;
• une feuille de calcul est un objet Worksheet ;
• une plage de cellules (qui peut se limiter à une cellule) est un objet Range.
• Une cellule est définie par L’objet Cells.

VBA-01: Programmation VBA 2


Définition

Objet:

Un objet est une instance d'une classe (!).


En fait, un objet est une "entité" informatique qu'un programme informatique peut manipuler.
Dans le cadre du présent tutoriel, un objet est une entité externe à VBA que votre programme VBA peut (veut?) manipuler.
Le cas le plus évident est une cellule de classeur. Pour la manipuler, VBA utilise une instance de la classe Range.

Classe:
Une classe est une catégorie (sorte) d'objets. Votre programme peut manipuler une cellule précise (ou un groupe de cellule), mais pas le concept
de cellule.
Propriétés:
Chaque objet possède des propriétés qui le décrivent. La liste des propriétés varie d'une classe à l'autre, mais tous les objets d'une même classe
ont les mêmes propriétés. Ce qui les distingue, ce sont les valeurs des propriétés.
Par exemple, toutes les feuilles Excel ont la propriété Name, mais la valeur de la propriété Name est différente pour chaque feuille (du moins on le
souhaite).

Méthode:

Une méthode est une action que peut réaliser un objet. La liste des méthodes varie d'une classe à l'autre, mais tous les objets d'une même classe
ont les mêmes méthodes.
Par exemple, la méthode Copy d'une cellule permet de copier le contenu de cette cellule dans le presse-papier (ou dans une autre cellule).
Évidemment, il arrive qu'une méthode change les propriétés d'un objet. Par exemple, la méthode PasteSpecial d'une cellule change une ou
plusieurs propriétés de cette cellule.

Événement:
Un événement permet d'associer une procédure VBA à un objet. Par exemple, l'événement Change d'une feuille se produit lorsqu'une cellule de
cette feuille est modifiée et permet d'associer une procédure nommée Worksheet_Change à cette feuille Excel.

Collection:
Ensemble d'objets d'une même classe qui peuvent être adressés avec le nom de la collection et un numéro d'item.
Par exemple, un classeur Excel est une collection Sheets d'objets WorkSheet et/ou Chart
VBA-01: Programmation VBA 3
L’EXPLORATEUR D’OBJETS
L’EXPLORATEUR D’OBJETS

Dans chaque classe, il existe Quatre types de membres :


 Propriété
 Function : Retourne une valeur
 Procédure : ne retournant pas de valeur
 Event : une action sur l’objet
Principaux objets Excel

Les cellules Excel sont des objets de la classe Range.

Range("A1:H5") est un objet contenant la plage A1:H5.


Cells(3,5) est un objet contenant la cellule E5 (ligne 3, colonne 5).
Range("A1").Offset(3,5) est un objet contenant la plage F4 soit un
déplacement de 3 lignes et 5 colonnes à partir de A1.
Range(Cells(3,5), Range("A1").Offset(3,5)) est un objet contenant la plage E3:F4.
Range((“A1:B2”).select : Sélection la plage de A1 a A2
ActiveCell : Cellule active

Sélection de toutes les cellules non vides dans une seule colonne en dessous de la cellule active:
Cellule ou plage? Le modèle objet Excel ne fait pas la différence entre une plage et une cellule.
Une cellule est simplement une plage ne contenant qu'une cellule.

VBA-01: Programmation VBA 6


Principaux objets Excel

Les feuilles Excel sont des objets de la classe Worksheet.


Elles sont regroupées dans la collection Worksheets et dans la collection
Sheets.

On peut manipuler une feuille de classeur par son nom ou par son indice:

Worksheets(« Etudiants") est la feuille nommée Etudiants


Sheets(« Etudiants") est aussi la feuille nommée Etudiants
Sheets(1) est la premiére feuille du classeur

La différence entre les deux collections est que la collection Sheets contient
aussi les objets Chart du classeur
VBA-01: Programmation VBA 7
Principaux objets Excel

Les classeurs Excel sont des objets de la classe Workbook.

Tous les classeurs ouverts sont regroupés dans la collection Workbooks.

Workbook("VBA Exemples.xls") est le classeur VBA Exemples.xls

La programme Excel lui-même, lorsque démarré, est un objet de la


classe Application.

• Le classeur actif est: Application.ActiveWorkbook ou plus


simplement ActiveWorkbook.
• La feuille active du classeur actif est:Application.ActiveWorkbook.ActiveSheet ou
plus simplement ActiveSheet.
• La cellule active de la feuille active du classeur actif
est:Application.ActiveWorkbook.ActiveSheet.ActiveCell ou plus
simplement ActiveCell. VBA-01: Programmation VBA 8
Déclaration des objets

Dim MaFeuille As Worksheet ‘variable de type Worksheet


Set MaFeuille = ThisWorkbook.Sheets(1) ‘Affectation des objets

Dim MaPlage As Object ‘variable de type Object


Set MaPlage = Range("A1:B5") ‘l’instruction Set attribue une
référence
d'objet à une variable

On distingue 3 éléments des objets :


• Des propriétés
• Des méthodes (procédures ou fonctions)
• Les évènements
LES PROPRIETES DES OBJETS

• Chaque objet est défini par un ensemble de propriétés, qui représentent les
caractéristiques de l’objet.
Objet.Propriété

Exemple :

Range("A1").Value = "Test "


ActiveCell.Font.Bold = True
Application.Selection  l’objet sélectionné dans la fenêtre active

MaPlage.value = « Bonjour »
MaPlage.Font.Size = 12

VBA-01: Programmation VBA 10


LES METHODES DES OBJETS

sont les procédures et fonctions attachées à l’objet


Objet.Méthode

Exemple :
• Range("A1:C12").Select ‘sélectionne la plage
• Selection.Clear ‘efface le contenu des cellules sélectionnées
• ActiveWorkbook.SaveAs "C:\test.xls" ‘Enregistre le classeur actif
dans un fichier.
• ActiveCell.Name = "Total" ‘nomme la cellule active
Range(«B2:B45»).Name = "Total" ‘nomme la plage
L’instruction With...End With

L’instruction With...End With est utile lorsque les références à un objet


sont répétées plusieurs fois dans une petite section de code.

Exemple :
Sub ModifiePolice(MaPlage As Range)
MaPlage.Select
With Selection.Font
.Size = 12
.ColorIndex = 3
.Italic = True
End With
End Sub
Quelques propriétés et méthodes pratique
Objet Propriété ou méthode Description

Range ; worksheet Activate Activer la cellule ou plage; feuille; classeur

Range Value Donner la valeur de la cellule

Range ClearContents; Effacer le contenu

Range Font Mise en forme du texte (Size, Bold, Name, etc..)

Range Interior Mise en forme de l’intérieur

WorkSheet Rows(2).insert insérer une ligne à la ligne 2

WorkSheet Visible; count Masquer la feuille = 0 ; =-1 annule : nombre des feuilles

WorkSheet Name; index Renvoie le nom ou l’indice

Sheets; Workbooks Add ; Delete Créer une feuille ou supprimer une feuille
Count ThisWorkbook.Sheets.Add After:=Sheets(ThisWorkbook.Sheets.Count)
WorkSheet Calculate Lancer le calcul de la feuille

WorkSheet Copy After ; Before Creér une copie de la feuille


Worksheets("Feuil1").Copy After:=Sheets(Sheets.Count)
Workbook Close; save; saveAs; Fermer; sauvegarder ; imprimer From:=2, To:=3
PrintOut
LES COLLECTIONS

De nombreux objets appartiennent à une collection d'objets, la collection étant


elle-même un objet.

Exemple
• Range("A1:B4")  la plage de cellules A1:B4 et renvoie un objet Range.
• Worksheets(1)  la première feuille de calcul du classeur actif et renvoie un objet
Worksheet.
• Workbooks("Classeur1.xls").Worksheets("Feuil1")  la feuille de calcul de nom Feuil1 du
classeur de nom Classeur1.xls et renvoie un objet Worksheet.
VBA-01: Programmation VBA 14
LES EVENEMENTS

Un événement est une action reconnue par un objet.


 déclencher l’exécution d’une procédure lorsque cet événement
survient

Pour qu’un objet réponde à un événement, il faut écrire du code VBA


dans la procédure associée à l’événement considéré.
Évènements
Nom de la class,
Nom de l’évènement
Dans certains cas nom
De l’objet
Les principaux Evènements VBA
Objet Événement Paramètres Se produit lorsque

Workbook Open Le classeur Excel est ouvert

Lorsqu'une demande de fermeture


Workbook BeforeClose Cancel
du classeur a été faite

Sh la feuille modifiée Lorsqu'une cellule ou plage du


Workbook SheetChange
Target la plage modifiée classeur est modifiée

Lorsqu'une cellule ou plage de la


Worksheet Change Target la plage modifiée feuille qui contient la procédure Sub
est modifiée

Lors de la sélection d'une autre plage


Worksheet SelectionChange Target la nouvelle plage sélectionnée
dans un classeur
FONCTIONS DEFINIES PAR
L’UTILISATEUR

• VBA offre la possibilité de créer ses propres fonctions, qui peuvent être utilisées
dans EXCEL comme n’importe quelle fonction intégrée.
Function NomFonction([argument_1,..., argument_n])
Instructions
...
NomFonction = valeur de retour
...
End Function
Les crochets [ ] signifient que les arguments sont facultatifs
Attention : Dans VBA, les arguments d’une fonction sont séparés par des virgules,
alors que dans EXCEL ils sont séparés par des points-virgules.

VBA-01: Programmation VBA 18


LES FONCTIONS
INTEGREES D’EXCEL
Pour utiliser une fonction intégrée d’EXCEL dans VBA, il faut préciser à VBA où
peut être trouvée cette fonction  précéder le nom de la fonction de l’objet
WorkSheetFunction.
Attention : Toutes les fonctions intégrées d’EXCEL ne sont pas disponibles
dans VBA !

utiliser une fonction


intégrée d’EXCEL plutôt que
de définir sa propre
fonction.
TP

Page 6

Vous aimerez peut-être aussi