PaliSkill
Introduction au VBA

Leçon 3 / 7 — Chapitre 3: Manipuler les objets Excel par code

Manipuler les classeurs (Workbooks) par code

Jusqu'ici, toutes les macros ont agi sur le classeur contenant le code lui-même. Il est aussi possible d'ouvrir, de fermer et de manipuler d'AUTRES classeurs par code, ainsi que de distinguer précisément à quel classeur une instruction s'applique.

Deux repères essentiels : ThisWorkbook et ActiveWorkbook

ThisWorkbook désigne toujours le classeur qui CONTIENT le code en cours d'exécution, même si un autre classeur est affiché à l'écran au moment de l'exécution. ActiveWorkbook désigne le classeur actuellement AFFICHÉ à l'écran — les deux peuvent différer dès que plusieurs classeurs sont ouverts en même temps.

Ouvrir un classeur externe

Sub OuvrirClasseur()
    Dim classeurExterne As Workbook
    Set classeurExterne = Workbooks.Open("C:\Data\ventes.xlsx")
    ' ... traitement du classeur ouvert ...
    classeurExterne.Close SaveChanges:=True
End Sub

Workbooks.Open ouvre un fichier existant à partir de son chemin complet et renvoie une référence au classeur ouvert, stockée ici dans classeurExterne pour pouvoir le manipuler puis le refermer proprement.

Enregistrer et fermer

ThisWorkbook.Save
classeurExterne.Close SaveChanges:=False   ' ferme sans enregistrer les modifications

Exemple concret : une macro de consolidation mensuelle ouvre tour à tour trois classeurs de succursales différentes, en extrait un total par classeur, puis les referme sans les modifier — en utilisant systématiquement ThisWorkbook pour désigner le classeur de consolidation lui-même, la macro reste fiable même si l'utilisateur clique sur un des classeurs de succursale pendant l'exécution.

À vous de jouer : dans vos propres mots, expliquez la différence entre ThisWorkbook et ActiveWorkbook, puis donnez un exemple de situation où utiliser le mauvais des deux causerait un bug.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 76 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès