OVH Cloud OVH Cloud

Variable globale

2 réponses
Avatar
thomas
Bonjour le forum,

Ma question est la suivante : J'aimerai avoir une variable=20
commune =E0 tous les modules VBA de mon classeur. J'ai=20
d=E9clar=E9 une variable dans le module d'ouverture du=20
classeur :

Public nomBase As String

Private Sub Workbook_Open()

nomBase =3D "test"

End Sub

J'essaye d'utiliser cette variable dans d'autres modules=20
pour utiliser sa valeur. Mais nomBase est toujours vide=20
comme si elle n'avait pas =E9t=E9 d=E9clar=E9e. Est-ce possible=20
d'avoir une variable globale et de lui affecter une valeur=20
qui pourra =EAtre repris dans d'autres modules ???

Merci.
Thomas.

2 réponses

Avatar
Jean-François Aubert
Bonjour Thomas,
Il faut initialiser ta variable à l'ouverture du classeur comme ceci:

Dans le ThisWorkbook:
'***************************
Private Sub Workbook_Open()
initialiseLaVariable
End Sub
'**************************

et en tête de module standard:
'**********************
Public nomBase As String

Sub initialiseLaVariable()
nomBase = "test"
End Sub
'*********************
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"thomas" a écrit dans le message de
news:0d5901c351db$bb966830$
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 :

Public 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.
Avatar
Hervé
Salut Thomas,
Si tu veux déclarer ta variable dans le module du thisworbook, tu doit lui
faire référence pour y accéder.
dans un autre module (feuille ou standard) :

Sub Variable()
ThisWorkbook.nomBase = "Ma variable à moi"
MsgBox ThisWorkbook.nomBase
End Sub

Hervé.

"thomas" a écrit dans le message news:
0d5901c351db$bb966830$
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 :

Public 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.