Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Compréhension du modèle objet Excel | Introduction à VBA et au Modèle Objet d'Excel
VBA Excel Pour l'Automatisation des Entreprises

Compréhension du modèle objet Excel

Glissez pour afficher le menu

Chaque ligne de VBA que vous écrirez dans Excel est une phrase à propos d’objets : quelque chose existe (une Application, un Workbook, une Worksheet, une Range), et vous lisez l’une de ses propriétés ou vous lui demandez d’exécuter l’une de ses méthodes. Une fois cette hiérarchie comprise, le reste du langage n’est qu’une question de vocabulaire.

Lecture de la hiérarchie

  • Application — l’instance complète d’Excel en cours d’exécution ; le sommet de chaque hiérarchie ;
  • Workbooks — la collection de tous les fichiers ouverts ; un seul est un Workbook, par exemple Section_1_VBA_Intro.xlsm ;
  • Worksheets — la collection d’onglets à l’intérieur d’un classeur ; un seul est une Worksheet, par exemple "Employees" ;
  • Range — une cellule, un bloc de cellules, une ligne entière ou une colonne entière ;
  • Cells / Value — les données réelles contenues dans une Range.

Il est rare de devoir saisir toute la chaîne depuis Application — VBA suppose que vous faites référence au classeur et à la feuille actifs, sauf indication contraire — mais nommer explicitement les objets distingue un code fragile d’un code fiable. Comparez ces deux façons d’écrire la même instruction :

' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
 
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000

La deuxième version continuera de fonctionner même si l'utilisateur a trois autres classeurs ouverts et une feuille différente sélectionnée — une habitude qui devient cruciale lorsque vos macros dépassent quelques lignes. Vous utiliserez constamment ThisWorkbook.Worksheets("SheetName") de cette manière tout au long du cours.

Navigation dans les relations d'objets via la fenêtre Exécution immédiate

La fenêtre Exécution immédiate (Affichage → Fenêtre Exécution immédiate ou Ctrl+G dans le VBE ; ^ ⌘ G sur Mac) permet de tester une seule ligne de code sans l'encapsuler dans une Sub.

carousel-imgcarousel-img

Tapez une ligne commençant par un point d'interrogation puis appuyez sur Entrée pour voir immédiatement le résultat. Essayez ces exemples sur Section_1_VBA_Intro.xlsm :

?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count

La troisième ligne introduit CurrentRegion, une propriété qui s'étend d'une seule cellule à tout le bloc de données contigu autour d'elle.

Tâche

  1. Dans la fenêtre Exécution immédiate, écrire une ligne qui affiche le poste de Olivia Brown (ligne 4) sans cliquer d'abord sur la cellule — faites référence directement via la hiérarchie des objets.
  2. Écrire une deuxième ligne qui affiche le nombre de lignes dans la table Employees en utilisant CurrentRegion.Rows.Count.
Indice
expand arrow

Faites référence comme ThisWorkbook.Worksheets("Employees").Range("D4").Value — la ligne 4 correspond à Olivia Brown, la colonne D correspond au poste.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Compréhension du modèle objet Excel

Chaque ligne de VBA que vous écrirez dans Excel est une phrase à propos d’objets : quelque chose existe (une Application, un Workbook, une Worksheet, une Range), et vous lisez l’une de ses propriétés ou vous lui demandez d’exécuter l’une de ses méthodes. Une fois cette hiérarchie comprise, le reste du langage n’est qu’une question de vocabulaire.

Lecture de la hiérarchie

  • Application — l’instance complète d’Excel en cours d’exécution ; le sommet de chaque hiérarchie ;
  • Workbooks — la collection de tous les fichiers ouverts ; un seul est un Workbook, par exemple Section_1_VBA_Intro.xlsm ;
  • Worksheets — la collection d’onglets à l’intérieur d’un classeur ; un seul est une Worksheet, par exemple "Employees" ;
  • Range — une cellule, un bloc de cellules, une ligne entière ou une colonne entière ;
  • Cells / Value — les données réelles contenues dans une Range.

Il est rare de devoir saisir toute la chaîne depuis Application — VBA suppose que vous faites référence au classeur et à la feuille actifs, sauf indication contraire — mais nommer explicitement les objets distingue un code fragile d’un code fiable. Comparez ces deux façons d’écrire la même instruction :

' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
 
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000

La deuxième version continuera de fonctionner même si l'utilisateur a trois autres classeurs ouverts et une feuille différente sélectionnée — une habitude qui devient cruciale lorsque vos macros dépassent quelques lignes. Vous utiliserez constamment ThisWorkbook.Worksheets("SheetName") de cette manière tout au long du cours.

Navigation dans les relations d'objets via la fenêtre Exécution immédiate

La fenêtre Exécution immédiate (Affichage → Fenêtre Exécution immédiate ou Ctrl+G dans le VBE ; ^ ⌘ G sur Mac) permet de tester une seule ligne de code sans l'encapsuler dans une Sub.

carousel-imgcarousel-img

Tapez une ligne commençant par un point d'interrogation puis appuyez sur Entrée pour voir immédiatement le résultat. Essayez ces exemples sur Section_1_VBA_Intro.xlsm :

?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count

La troisième ligne introduit CurrentRegion, une propriété qui s'étend d'une seule cellule à tout le bloc de données contigu autour d'elle.

Tâche

  1. Dans la fenêtre Exécution immédiate, écrire une ligne qui affiche le poste de Olivia Brown (ligne 4) sans cliquer d'abord sur la cellule — faites référence directement via la hiérarchie des objets.
  2. Écrire une deuxième ligne qui affiche le nombre de lignes dans la table Employees en utilisant CurrentRegion.Rows.Count.
Indice
expand arrow

Faites référence comme ThisWorkbook.Worksheets("Employees").Range("D4").Value — la ligne 4 correspond à Olivia Brown, la colonne D correspond au poste.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4
some-alt