Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. La programmation objet sous Excel
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

La programmation objet sous Excel

Présentation

VBA Excel est un langage de programmation orienté objet, même s’il ne dispose pas de toutes les fonctionnalités des langages de ce type.

La plupart des éléments manipulés dans Excel sont des objets : les classeurs, les feuilles de calcul, les plages de cellules, les cellules...

Les objets sont organisés selon un modèle hiérarchique : certains objets contiennent d’autres objets qui peuvent eux-mêmes en contenir d’autres... Ces objets sont appelés conteneur ou objet parent. Par exemple, l’objet Application est le conteneur des objets Workbook (classeurs ouverts dans Excel), qui sont eux-mêmes les conteneurs des objets Worksheet (feuilles de calcul d’un classeur). Le conteneur le plus vaste est l’objet Application.

Un ensemble d’objets de même nature constitue une collection (collection Workbooks : ensemble des classeurs ouverts dans Excel, collection Worksheets : ensemble des feuilles de calcul d’un classeur).

Un objet dispose d’un ensemble de caractéristiques appelées propriétés (par exemple pour l’objet Application : la propriété UserName représente le nom de l’utilisateur, la propriété Version renvoie le numéro de version de Microsoft Excel) et de comportements ou actions appelés méthodes (par exemple, toujours pour l’objet Application, la méthode FindFile affiche la boîte de dialogue Ouvrir, la méthode Quit quitte Excel...).

Un objet répond à des événements provoqués par l’utilisateur (ex : ouverture d’un classeur, clic sur un bouton de commande, changement de cellule active...) ou par le système.

Les classes sont des modèles permettant de créer des objets de même nature. Les objets issus...

Le modèle objet Excel

1. Présentation

images/excel.PNG

2. Principaux objets et collections

Les objets

Application

Objet faisant référence à l’application Microsoft Excel active.

AutoCorrect

Objet représentant les attributs de correction automatique de Microsoft Excel. 

AutoRecover

Objet représentant les options de récupération automatique d’un classeur. Ces macros sont accessibles depuis Excel à partir de l’onglet Enregistrer du menu Outils - Options.

DefaultWebOptions

Objet renvoyant les attributs utilisés par Excel lors de l’ouverture ou l’enregistrement d’une page web.

ErrorCheckingOptions

Objet représentant les options de vérification d’erreurs de l’application Excel. 

LanguageSettings

Objet contenant des informations sur les paramètres de langue d’Excel.

Speech

Objet contenant des méthodes et des propriétés qui se rapportent aux fonctions vocales.

SpellingOptions

Objet représentant les options d’orthographe de l’application.

VBE

Objet VBE représentant Visual Basic Editor.

WorkSheetFunction

Objet contenant toutes les fonctions disponibles dans Excel. Cet objet permet d’obtenir le résultat d’une fonction appliquée à une plage de cellules. Exemple : Moy = Application.WorksheetFunction.Average(Selection)

Les collections

AddIns

Collection contenant toutes les macros complémentaires (objets AddIn).

COMAddIns

Représente les compléments COM actuellement installés dans Microsoft Excel.

CommandBars

Collection des barres de commandes d’Excel (objets CommandBar).

Dialogs

Collection des boîtes de dialogue intégrées d’Excel.

FileExportConverters

Collection de tous les convertisseurs de fichier pour l’enregistrement des fichiers dans Microsoft Excel.

Names

Collection de tous...

Principes d’utilisation des objets et collections

1. Les propriétés

Les propriétés servent à décrire un objet. Certaines propriétés sont en lecture seule et ne peuvent par conséquent pas être modifiées par du code VBA.

Syntaxe

{<objet> | <variable objet>}.<propriété> 

Exemple

'   Modification du pointeur de la souris 
Application.Cursor = xlWait 
 
'   Affichage de la version de l'application Excel active 
'   Cette propriété est en lecture seule 
MsgBox Application.Version  
 
'   Pointeur de la souris par défaut  
Application.Cursor = xlDefault 

2. Propriétés représentant des objets

Les objets globaux et les objets instanciés dans le code à partir des classes fournies par VBA possèdent des propriétés dont la valeur est mise à jour automatiquement par le système.

Ces propriétés spécifiques permettent d’accéder directement à certains objets : fenêtre active, classeur actif, cellules de la feuille active... Le tableau suivant présente les propriétés spécifiques les plus couramment utilisées.

Propriété

Objet Parent

Objet renvoyé

ActiveCell

Application Window

Objet Range représentant la première cellule active de la fenêtre active ou spécifiée.

ActiveChart

Application Window Workbook

Objet Chart représentant le graphique actif.

ActiveControl

Frame Page UserForm

Objet Control représentant le contrôle (ActiveX) actif.

ActivePane

Window

Objet Pane représentant le volet actif de la fenêtre active.

ActiveSheet

Application Window Workbook

Objet Worksheet représentant la feuille active du classeur actif...

Instructions utilisées avec les objets

1. L’instruction With

L’instruction With permet d’accéder plusieurs fois au même objet en le nommant une seule fois.

Elle offre plusieurs avantages :

  • Optimisation du temps d’exécution du code.

  • Gain de temps sur le travail d’écriture.

  • Meilleure lisibilité du code.

Syntaxe

With <Objet> 
    <code utilisant des méthodes et propriétés> 
    <se rapportant à l'objet> 
End With 

Exemple

Ajout et modification d’une feuille de calcul.

With ActiveWorkbook 
   ' Crée une feuille après la dernière feuille du classeur actif 
   .Worksheets.Add , .Worksheets(.Worksheets.Count) 
   ' Modifie le nom de la nouvelle feuille et renseigne la cellule A1 
   With .ActiveSheet 
      .Name = "Synthèse" 
      .Range("A1") = "Récapitulatif des devis" 
   End With 
End With 

2. L’instruction For Each...Next

L’instruction For Each...Next permet de passer en revue les objets d’une collection ou d’un tableau.

Syntaxe

For Each <élément > In <groupe> 
    <séquence d'instructions> 
    [Exit For] 
    <séquence d'instructions> 
Next <élément> 

Exemple

Modification du contenu de la cellule A1 et du nom de toutes les feuilles du classeur actif.

Sub NumDevis() 
    Dim oFeuille As Worksheet 
 
    For Each oFeuille In ActiveWorkbook.Worksheets 
       oFeuille.Cells(1...

L’explorateur d’objets

1. Présentation

Compte tenu du nombre important d’objets Excel et de leur diversité, il est parfois utile de pouvoir rechercher des informations se rapportant aux objets.

L’explorateur d’objets permet d’afficher des informations relatives aux objets, méthodes, propriétés, événements et constantes.

Vous pouvez l’afficher de différentes façons :

 Affichage - Explorateur d’objets ou images/16out05.PNG (barre d’outils Standard) ou [F2].

images/03RI02N.png

1. Liste des bibliothèques actuellement chargées.

2. Texte recherché : objet, propriété, collection, événement, méthode...

3. Résultats de la recherche : liste des classes d’objets (objets et collections) et des membres les composant (objet, collection, propriété, événement ou méthode). Le mot recherché peut être dans la liste des classes ou dans celle des membres.

4. Classes d’objets de la bibliothèque : la classe d’objet sélectionnée dans la liste Résultats de la recherche est encadrée.

5. Propriétés (icône images/03ic53.PNG), méthodes, (icône images/03ic52.PNG), événements (icône images/03ic51.PNG) et constantes (icône images/03ic54.PNG) se rapportant à la classe d’objet sélectionnée ou encadrée dans la liste de gauche.

6. Détail de l’élément sélectionné.

2. Recherche dans l’Explorateur d’objets

Pour effectuer une recherche dans l’explorateur d’objets, procédez de la manière suivante :

 Saisissez le mot recherché dans la deuxième liste déroulante.

 Cliquez sur l’icône images/03ico04.PNG. Si la liste Résultats de la recherche affiche plusieurs lignes, déplacez-vous sur celle qui vous intéresse...