Variable globale

T

thomas

Guest
Bonjour le forum,

Ma question est la suivante : J'aimerai avoir une variable commune à tous les modules VBA de mon classeur. J'ai déclaré une variable dans le module d'ouverture du classeur :

Dim nomBase As String

Private Sub Workbook_Open()

nomBase = "test"

End Sub

J'essaye d'utiliser cette variable dans d'autres modules pour utiliser sa valeur. Mais nomBase est toujours vide comme si elle n'avait pas été déclarée. Est-ce possible d'avoir une variable globale et de lui affecter une valeur qui pourra être repris dans d'autres modules ???

Merci.
Thomas.
 
T

thomas

Guest
Bonjour Ti,

J'ai essayé de faire comme tu as dit, mais ma variable est toujours vide :

Public NomBase as String

Private Sub Workbook_Open()

NomBase = "test"

End Sub

et dans un autre module j'affiche la valeur de la variable par un msgbox et elle est vide.
Je lance la function par un bouton un fois que le classeur est ouvert. QQ'un a t-il une idée.

Merci.
Thomas.
 
M

Maxx

Guest
Salut Thomas,

Grâce à toi j'ai découvert qu'on pouvait affecter une fois pour toute une valeur à une variable!! Je suis vraiment une quiche! Je pensais qu'à la fin dee la procédure principale, les variables perdaient leurs valeurs.

Dans mon fichier joint, je fais comme toi, sauf que l'affectation est réalisée dans un module.

Voilà voilà... @+
 

Pièces jointes

  • Classeur1.zip
    5.5 KB · Affichages: 656
  • Classeur1.zip
    5.5 KB · Affichages: 679
  • Classeur1.zip
    5.5 KB · Affichages: 721
@

@+Thierry

Guest
Bonsoir Ti, Maxx, Thomas

Oui comme te dis Ti, et en plus, assures toi que ta déclaration "Public NomBase as String" se situe bien dans un Module Standard et pas un Private Module (ce qui ne semble pas être le cas au regards de ton instruction suivante "Private Sub Workbook_Open()" qui elle doit donc se situer dans le Provate Module de "ThisWorkbook"...

@+Thierry
 

Discussions similaires