PaliSkill
Introduction au VBA

Leçon 6 / 6 — Chapitre 1: Démarrer avec VBA

Portée des variables

Jusqu'ici, chaque variable déclarée avec Dim n'existait que le temps de l'exécution de SA macro — une fois End Sub atteint, elle disparaît. Cette leçon explique précisément où et combien de temps une variable reste accessible, ce qu'on appelle sa portée.

Variable locale (portée la plus courante)

Une variable déclarée avec Dim À L'INTÉRIEUR d'une Sub n'existe que dans cette Sub — une autre macro du même module ne peut ni la lire ni la modifier, même si elle porte le même nom.

Variable de niveau module (portée plus large)

Déclarée avec Dim EN DEHORS de toute Sub, tout en haut du module, une variable devient accessible à TOUTES les macros de ce même module, tant que le classeur reste ouvert :

Dim compteurExecutions As Integer   ' en haut du module, hors de toute Sub

Sub IncrementerCompteur()
    compteurExecutions = compteurExecutions + 1
    MsgBox "Exécution n°" & compteurExecutions
End Sub

Chaque appel à IncrementerCompteur retrouve la valeur laissée par l'appel précédent, contrairement à une variable locale qui repart toujours de zéro.

Pourquoi limiter la portée autant que possible : une variable de niveau module reste en mémoire et peut être modifiée par n'importe quelle macro du module, une source d'erreurs difficiles à tracer sur un projet qui grandit — la bonne pratique est de garder une variable locale sauf besoin réel de la partager entre plusieurs macros.

Exemple concret : un développeur ajoute une variable de niveau module pour savoir combien de fois une macro de nettoyage de données a été lancée dans la session — une information qui doit survivre entre deux appels de la macro, donc incompatible avec une variable locale.

À vous de jouer : déclarez une variable de niveau module, incrémentez-la dans une macro à chaque exécution, et vérifiez qu'elle garde sa valeur d'un appel à l'autre plutôt que de repartir de zéro.

🔒

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