Programmation VBA pour Excel
Accueil
Sommaire du cours
Sommaire des exercices
Résumé du cours
Forum
Travaux
TICE
AgroParisTech
About
©AgroParisTech
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.
    Pour faire référence à un objet dans une collection, on peut soit utiliser le numéro de sa position dans la collection, soit son nom.
    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é).
  • La notation Workbooks("Classeur1.xls").Sheets("Feuil1") est une notation raccourcie pour Application.Workbooks("Classeur1.xls").Worksheets("Feuil1"). L’objet Application peut, en général, être omis.
    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.
    Voici deux autres exercices sur ces notions. Il faut faire les exercices 2 et 3 avant d'avancer.
    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.