Chapitre 3 - Accès aux fonctionnalités d’EXCEL depuis VBA
Le langage de programmation VBA dépend de
l’application
MICROSOFT OFFICE à laquelle il est attaché. Chaque application de
MICROSOFT OFFICE possède un ensemble d’objets organisés. Cette organisation s’appelle le
modèle objet de l’application. Comme nous le détaillerons dans les sections suivantes, dans Excel, les objets manipulés sont des classeurs, des feuilles de calcul, des plages, des cellules...
Les objets
VBA est un langage de programmation orientée objet attaché à une application. Tout est objet. En informatique, un objet est une entité nommée possédant des caractéristiques propres (des propriétés) et actions propres (des méthodes).
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.
Les collections
De nombreux objets appartiennent à une
collection d'objets
.
Exemple de collections :
Dans l’objet Application, il existe une collection Workbooks qui contient tous les objets Workbook ouverts.
Chaque objet Workbook comporte une collection Worksheets qui contient tous les objets Worksheet de ce classeur.
Chaque objet Worksheet contient des objets Range.
L’accès aux objets
VBA permet de faire référence à un objet de différentes façons. Par exemple, pour faire référence à une plage de cellules donnée, il faut utiliser l’objet Range.
Exemple : Range("A1:B4") permet de faire référence à la plage de cellules A1:B4 et renvoie un objet Range.
Exemple :
Worksheets(1) permet de faire référence à la première feuille de calcul du classeur actif et renvoie un objet Worksheet.
Workbooks("Classeur1.xls").Sheets("Feuil1") permet de faire référence à la feuille de calcul de nom Feuil1 du classeur de nom Classeur1.xls et renvoie un objet Worksheet.
Workbooks("Année2006").Worksheets("Mars").Range("B2") désigne la cellule B2 de la feuille Mars du classeur Année2006.
Sheets("Mars").Range("B2") désigne la cellule B2 de la feuille Mars du classeur actif (ouvert et affiché).
Les références aux cellules peuvent être :
absolues : Range("B2") désigne la cellule B2 de la feuille active ;
relatives à la cellule d'origine : ActiveCell.Offset(2,-1) désigne la cellule située 2 lignes en bas (- pour plus haut) et une colonne à gauche (+ pour à droite) de la cellule active.
Voici un
premier exercice sur ces notions. Il faut faire l'exercice 1 avant d'avancer.
Les propriétés des objets
Chaque objet est défini par un ensemble de propriétés, qui représentent les caractéristiques de l’objet. Pour faire référence à une propriété d’un objet donné, il faut utiliser la syntaxe Objet.Propriété.
Exemple :
La propriété Value de l’objet Range désigne la valeur de l’objet spécifié.
Range("A1").Value = "AgroParisTech" affecte la valeur AgroParisTech à la cellule A1.
La propriété ActiveCell de l’objet Application renvoie un objet Range, qui fait référence à la cellule active de la feuille de calcul.
ActiveCell.Font.Bold = True permet d’affecter le style gras à la cellule sélectionnée (Font est une propriété de l’objet Range qui retourne un objet Font contenant les attributs de police (taille, couleur, style, ...) de l’objet Range.
Bold est une propriété booléenne de l’objet Font qui correspond au style gras.
La propriété Selection de l’objet Application renvoie l’objet sélectionné dans la fenêtre active. Le type de l'objet renvoyé dépend de la sélection en cours.
La propriété ActiveCell ne permet de faire référence qu’à une seule cellule, alors que la propriété Selection permet de faire référence à une plage de cellules.
Les méthodes des objets
Les méthodes représentent les actions qui peuvent être effectuées par un objet. Pour faire référence à une méthode d’un objet donné, il faut utiliser la syntaxe Objet.Méthode analogue à la syntaxe d’accès aux propriétés des objets.
Exemple : La méthode Select de l’objet Range permet de sélectionner une cellule ou une plage de cellules.
Range("A1").Select sélectionne la cellule A1.
Attention, il faut bien distinguer la propriété de la méthode !
La propriété est une information associée à l'objet, alors que la méthode est comme une fonction qui renvoie une valeur ou modifie l'objet appelé par la méthode.
Voici les
autres exercice sur ces notions, à faire avant de passer au chapitre suivant.