Comment déclarer des Variables Globales dans VBA Excel pour être visible à travers le Classeur

J'ai une question à propos de portée mondiale et cachent le problème dans un exemple simple:

Dans un Classeur Excel:
Dans Feuil1 j'ai deux(2) boutons.

La première est intitulée SetMe et est liée à une sous-routine dans la feuille Sheet1 du module:

Feuil1 code:

Option Explicit
Sub setMe()
    Global1 = "Hello"
End Sub

Le deuxième est marqué ShowMe et est liée à une sous-routine dans ThisWorkbook du module:

ThisWorkbook code:

Option Explicit
Public Global1 As String
Debug.Print("Hello")
Sub showMe()
    Debug.Print (Global1)
End Sub

Cliquant sur SetMe produit un compilateur error: variable not defined.

Quand j'ai créer un module séparé et déplacer la déclaration de Global1 en elle tout fonctionne.

Donc ma question est:
Tout ce que j'ai lu dit que les variables Globales déclarées dans le haut d'un module, en dehors de tout code doit être visible par tous les modules du projet. Clairement, ce n'est pas le cas.
À moins que ma compréhension de Module n'est pas correct.

Les objets Sheet1, Sheet2, ThisWorkbook,... qui viennent avec un classeur: ne sont-ce pas les modules sont en mesure de déclarer les variables au niveau global?

Ou est le seul endroit où on peut déclarer un mondial, dans un module séparé de type Modules.

Je crois que les UserForms Code tombe dans la catégorie de type de Module, même si ce n'est pas vraiment répertoriés comme tels. Est-ce exact?
Je l'ai supprimé pour éviter toute confusion 🙂 j'ai manqué de Pearson Lien et mal interprété une ligne dans la MSDN lien que j'ai posté. Appris quelque chose de nouveau aujourd'hui 🙂
Avez-vous trouvé toutes les réponses utiles ici? Il est toujours bon de donner de la rétroaction, de sorte que les autres de SORTE que les utilisateurs peuvent voir.

OriginalL'auteur user2978241 | 2014-12-20