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 ???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <thomas.berson@ifrance.com> a écrit dans le message de
news:0d5901c351db$bb966830$a001280a@phx.gbl...
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 ???
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.
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.
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" <thomas.berson@ifrance.com> a écrit dans le message news:
0d5901c351db$bb966830$a001280a@phx.gbl...
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 ???
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 ???