Médiaforma

VBA Excel – Le modèle objet d’Excel

Partagez cet article sur vos réseaux

Si vous avez déjà côtoyé un langage de programmation objet, vous aurez certainement compris en lisant l’article précédent que les éléments manipulés dans Excel sont des objets.

Les principaux objets Excel

Si vous n’avez jamais approché de près ou de loin un langage objet, vous n’avez certainement aucune idée de ce qu’est un langage objet, ni comment le fait que le VBA soit un langage objet va impacter votre programmation. Eh bien, disons qu’Excel consiste en un ensemble de briques que nous appellerons « objets ». Par exemple, les classeurs, les feuilles de calcul, les plages et les cellules sont des objets Excel. Allons un peu plus loin :

  • L’application Excel est un objet Application.
  • Le classeur en cours est un objet Workbook.
  • Les feuilles de calcul du classeur en cours sont des objets Worksheet.
  • Une plage de cellule dans une feuille de calcul est un objet Range.
  • Une cellule est un objet Cell.

Prenez une grande inspiration !

Les objets Excel appartiennent souvent à des « collections ». Par exemple :

Dans l’application Excel (objet Application), un ou plusieurs classeurs peuvent être ouverts. Ces classeurs constituent la collection Workbooks, c’est-à-dire l’ensemble des classeurs (objets Workbook) ouverts.

Un classeur (un Workbook) peut contenir une ou plusieurs feuilles de calcul. Ces feuilles de calcul constituent la collection Worksheets, c’est-à-dire l’ensemble des feuilles de calcul (les objets Worksheet) du classeur.

Une feuille de calcul contient un ensemble de cellules accessibles via des objets Range.

Les objets d’Excel – Quelques exemples pour bien comprendre

Un peu de pratique pour bien comprendre ce qui se passe.

Supposons que deux classeurs soient ouverts dans Excel. Le premier classeur s’appelle classeur1.xlsm. Il contient trois feuilles de calcul nommées feuille1, feuille2 et feuille3. Le deuxième classeur s’appelle classeur2.xlsm. Il contient une feuille de calcul nommée principal.

Pour accéder à la feuille feuille2 du classeur classeur1.xlsm, vous pouvez utiliser cette syntaxe :

Application.Workbooks("classeur1.xlsm").Worksheets("feuille2")

Ou plus simplement (l’objet Application étant implicite) :

Workbooks("classeur1.xlsm").Worksheets("feuille2")

Pour faire référence à un objet dans une collection, vous pouvez utiliser son nom, comme dans l’exemple précédent, mais également sa position dans la collection.

Par exemple, pour accéder à la feuille feuille2 (qui occupe la deuxième position dans la collection Worksheets) du classeur classeur1.xlsx, vous pouvez utiliser cette syntaxe :

Application.Workbooks("classeur1.xlsm").Worksheets(2)

Ou plus simplement :

Workbooks("classeur1.xlsm").Worksheets(2)

Voyons si vous avez compris.

Quelle instruction permet d’accéder à la cellule C8 dans la première feuille de calcul de nom Feuil1 du classeur Classeur1.xlsm ?

Deux syntaxes sont possibles :

Workbooks("classeur1.xlsm").Worksheets("Feuil1").Range("C8")

Workbooks("classeur1.xlsm").Worksheets(1).Range("C8")