La portée d’une variable dans Excel VBA détermine où peut être utilisé cette variable. Vous déterminez la portée d’une variable lorsque vous déclarez.

Il y a trois niveaux de cadrage: niveau de la procédure, le niveau module et au niveau du module public.

Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivant:

Variable Scope Example

  1. Placer les deux procédures (une procédure est soit une sous ou une fonction) dans un module. Dans l’éditeur Visual Basic, cliquez sur Insérer, Module. Ajoutez les lignes de code suivantes:

Procedure Level Scope in Excel VBA

  1. lorsque vous cliquez sur le bouton de commande sur la feuille (appeler les deux sous-marins):

Procedure Level Scope Result

Procedure Level Scope Result

Explication: la variable txt a une portée niveau de la procédure car elle est déclarée dans la procédure (entre Sub et End Sub). Par conséquent, vous ne pouvez utiliser cette variable dans SUB1. La txt variable ne peut pas être utilisé dans SUB2.

  1. Lorsque vous voulez une variable soit disponible à toutes les procédures dans un module, vous dites que vous voulez la variable d’avoir la portée de niveau module.

Vous devez déclarer la variable dans la section Déclarations générales (en haut du module). ajuster légèrement le code comme suit:

Module Level Scope in Excel VBA

  1. lorsque vous cliquez sur le bouton de commande sur la feuille:

Module Level Scope Result

Module Level Scope Result

Explication: la variable txt peut maintenant être utilisé dans SUB2. niveau du module est utilisé de manière interchangeable avec le niveau du module privé. C’est parce que les variables par défaut déclarées avec l’instruction Dim dans la section Déclarations générales sont scope comme privées. Vous pouvez également la portée d’une variable publique. Continuer à lire.

  1. En utilisant le mot-clé publique, votre variable sera disponible pour toutes les procédures de tous les modules dans un classeur. On appelle cela la portée du niveau du module public. ajuster légèrement le code comme suit:

Public Module Level Scope in Excel VBA

Explication: vous pouvez maintenant créer un nouveau module et placer un sous appelé sub3 dans ce module. Utilisez le même code que SUB2. Ajouter sub3 à votre code de bouton de commande. Lorsque vous cliquez sur le bouton de commande sur la feuille de calcul, vous obtiendrez trois boîtes de message « variable ne peut être utilisé dans cette procédure » (voir fichier Excel téléchargeable).