OVH Cloud OVH Cloud

decalration de variable

9 réponses
Avatar
cm
bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a une variable "fig" qui
prend des valeurs texte ou string. en lancant le sub principal qui fat appel
a tous les sous sub j'aimerais pouvoir passer la valeur de la variable dans
un des autres sous sub (qui n'utilise pas directemetn la méthode call) mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour que sa valeur soit
valide dans tous le programme ? sinon comment pourrais je faire ???
merci d'avance ed votre aide
chris

9 réponses

Avatar
J-Dan
bonjour cm

tu dois la declarer en dehors de la procedure (dans la
zone de declaration, avant toute macro) :

Dim "fig" as string (pour utilisation dans le meme module)

Public "fig" as string (pour utilisation dans tous les
modules du classeur)

bon courage


-----Message d'origine-----
bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a une
variable "fig" qui

prend des valeurs texte ou string. en lancant le sub
principal qui fat appel

a tous les sous sub j'aimerais pouvoir passer la valeur
de la variable dans

un des autres sous sub (qui n'utilise pas directemetn la
méthode call) mais

ca ne marche pas.
il y a t il une manière de déclarer la variable pour que
sa valeur soit

valide dans tous le programme ? sinon comment pourrais
je faire ???

merci d'avance ed votre aide
chris


.



Avatar
Philippe.R
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique" en tête d'un module ordinaire :
public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de news:cdatl3$40e$
bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a une variable "fig" qui
prend des valeurs texte ou string. en lancant le sub principal qui fat appel
a tous les sous sub j'aimerais pouvoir passer la valeur de la variable dans
un des autres sous sub (qui n'utilise pas directemetn la méthode call) mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour que sa valeur soit
valide dans tous le programme ? sinon comment pourrais je faire ???
merci d'avance ed votre aide
chris




Avatar
J-Dan
precision,

Public "fig" as string (pour utilisation dans tous les
modules du classeur)


cette declaration doit etre faite dans un module standard.

bon courage

-----Message d'origine-----
bonjour cm

tu dois la declarer en dehors de la procedure (dans la
zone de declaration, avant toute macro) :

Dim "fig" as string (pour utilisation dans le meme
module)


Public "fig" as string (pour utilisation dans tous les
modules du classeur)

bon courage


-----Message d'origine-----
bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a une
variable "fig" qui

prend des valeurs texte ou string. en lancant le sub
principal qui fat appel

a tous les sous sub j'aimerais pouvoir passer la valeur
de la variable dans

un des autres sous sub (qui n'utilise pas directemetn
la


méthode call) mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour
que


sa valeur soit
valide dans tous le programme ? sinon comment pourrais
je faire ???

merci d'avance ed votre aide
chris


.

.





Avatar
cm
merci de vos réponse mais j'ai déja essayer ces deux solutions et elle ne
semble pas marcher chez moi ...
j'ai ecrit la déclaration de la variable avant les sub : est ce que c'est
cela la zone de déclaration des modules ?
qu'est ce qu'un module ordinaire ou standart ..
merci encore de votre aide..
+
christoiphe
"Philippe.R" a écrit dans le message de
news:O2OFil%
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique" en tête d'un module
ordinaire :

public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de
news:cdatl3$40e$

bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a une variable "fig"
qui


prend des valeurs texte ou string. en lancant le sub principal qui fat
appel


a tous les sous sub j'aimerais pouvoir passer la valeur de la variable
dans


un des autres sous sub (qui n'utilise pas directemetn la méthode call)
mais


ca ne marche pas.
il y a t il une manière de déclarer la variable pour que sa valeur soit
valide dans tous le programme ? sinon comment pourrais je faire ???
merci d'avance ed votre aide
chris








Avatar
J-Dan
qu'est ce qu'un module ordinaire ou standart ..


dans un classeur, tu as plusieurs types de module :
Feuil1 (2 et 3), ThisWorkbook, qui sont presents par
defaut. Ils sont apparents dans l'explorateur de projet
de l'editeur VB.
Tu peux y ajouter par Insertion -> des "Userform",
des "modules de classe", et des "modules standards".

merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...


Quel est ton message d'erreur ? Attention au type que tu
declares (Integer,String,...)


-----Message d'origine-----
merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...
j'ai ecrit la déclaration de la variable avant les sub :
est ce que c'est

cela la zone de déclaration des modules ?
qu'est ce qu'un module ordinaire ou standart ..
merci encore de votre aide..
+
christoiphe
"Philippe.R" a écrit dans le
message de

news:O2OFil%
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique"
en tête d'un module


ordinaire :
public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de
news:cdatl3$40e$

bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a
une variable "fig"



qui
prend des valeurs texte ou string. en lancant le sub
principal qui fat



appel
a tous les sous sub j'aimerais pouvoir passer la
valeur de la variable



dans
un des autres sous sub (qui n'utilise pas
directemetn la méthode call)



mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour
que sa valeur soit



valide dans tous le programme ? sinon comment
pourrais je faire ???



merci d'avance ed votre aide
chris








.





Avatar
cm
ok pr les types de modules, j'ai bien un module qui est reliés a
thisworkbook...
il n' y a pas de message d'erreur mais la valeur de la variable ne passe pas
d'un sub a l'autre.
j'ia utilisé ce peit prog pour tester :

Global strmsg As String
Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub
Sub useprivatevriable()
MsgBox strmsg
End Sub

j'ai mis aussi a la place de global private et public mais rien n'y fait ..
pourquoi ca marche pas ?
il y a des optiosn a cocher quelques part ou une sécurité a enlever ???
merci pr ton aide
+
christophe

"J-Dan" a écrit dans le message de
news:2eae301c46bfa$40e3bf40$
qu'est ce qu'un module ordinaire ou standart ..


dans un classeur, tu as plusieurs types de module :
Feuil1 (2 et 3), ThisWorkbook, qui sont presents par
defaut. Ils sont apparents dans l'explorateur de projet
de l'editeur VB.
Tu peux y ajouter par Insertion -> des "Userform",
des "modules de classe", et des "modules standards".

merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...


Quel est ton message d'erreur ? Attention au type que tu
declares (Integer,String,...)


-----Message d'origine-----
merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...
j'ai ecrit la déclaration de la variable avant les sub :
est ce que c'est

cela la zone de déclaration des modules ?
qu'est ce qu'un module ordinaire ou standart ..
merci encore de votre aide..
+
christoiphe
"Philippe.R" a écrit dans le
message de

news:O2OFil%
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique"
en tête d'un module


ordinaire :
public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de
news:cdatl3$40e$

bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a
une variable "fig"



qui
prend des valeurs texte ou string. en lancant le sub
principal qui fat



appel
a tous les sous sub j'aimerais pouvoir passer la
valeur de la variable



dans
un des autres sous sub (qui n'utilise pas
directemetn la méthode call)



mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour
que sa valeur soit



valide dans tous le programme ? sinon comment
pourrais je faire ???



merci d'avance ed votre aide
chris








.





Avatar
docm
Menu Insertion/Module (pour créer un nouveau Module)

Copier ton code dans ce nouveau Module:
Global strmsg As String

Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub

Sub useprivatevriable()
MsgBox strmsg
End Sub


"cm" wrote in message
news:cde62v$2i8$
ok pr les types de modules, j'ai bien un module qui est reliés a
thisworkbook...
il n' y a pas de message d'erreur mais la valeur de la variable ne passe
pas

d'un sub a l'autre.
j'ia utilisé ce peit prog pour tester :

Global strmsg As String
Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub
Sub useprivatevriable()
MsgBox strmsg
End Sub

j'ai mis aussi a la place de global private et public mais rien n'y fait
..

pourquoi ca marche pas ?
il y a des optiosn a cocher quelques part ou une sécurité a enlever ???
merci pr ton aide
+
christophe

"J-Dan" a écrit dans le message de
news:2eae301c46bfa$40e3bf40$
qu'est ce qu'un module ordinaire ou standart ..


dans un classeur, tu as plusieurs types de module :
Feuil1 (2 et 3), ThisWorkbook, qui sont presents par
defaut. Ils sont apparents dans l'explorateur de projet
de l'editeur VB.
Tu peux y ajouter par Insertion -> des "Userform",
des "modules de classe", et des "modules standards".

merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...


Quel est ton message d'erreur ? Attention au type que tu
declares (Integer,String,...)


-----Message d'origine-----
merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...
j'ai ecrit la déclaration de la variable avant les sub :
est ce que c'est

cela la zone de déclaration des modules ?
qu'est ce qu'un module ordinaire ou standart ..
merci encore de votre aide..
+
christoiphe
"Philippe.R" a écrit dans le
message de

news:O2OFil%
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique"
en tête d'un module


ordinaire :
public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de
news:cdatl3$40e$

bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a
une variable "fig"



qui
prend des valeurs texte ou string. en lancant le sub
principal qui fat



appel
a tous les sous sub j'aimerais pouvoir passer la
valeur de la variable



dans
un des autres sous sub (qui n'utilise pas
directemetn la méthode call)



mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour
que sa valeur soit



valide dans tous le programme ? sinon comment
pourrais je faire ???



merci d'avance ed votre aide
chris








.









Avatar
cm
oui mais ca marche pas chez moi
:(( :((
et chez vous ?

"docm" a écrit dans le message de
news:
Menu Insertion/Module (pour créer un nouveau Module)

Copier ton code dans ce nouveau Module:
Global strmsg As String

Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub

Sub useprivatevriable()
MsgBox strmsg
End Sub


"cm" wrote in message
news:cde62v$2i8$
ok pr les types de modules, j'ai bien un module qui est reliés a
thisworkbook...
il n' y a pas de message d'erreur mais la valeur de la variable ne passe
pas

d'un sub a l'autre.
j'ia utilisé ce peit prog pour tester :

Global strmsg As String
Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub
Sub useprivatevriable()
MsgBox strmsg
End Sub

j'ai mis aussi a la place de global private et public mais rien n'y fait
..

pourquoi ca marche pas ?
il y a des optiosn a cocher quelques part ou une sécurité a enlever ???
merci pr ton aide
+
christophe

"J-Dan" a écrit dans le message de
news:2eae301c46bfa$40e3bf40$
qu'est ce qu'un module ordinaire ou standart ..


dans un classeur, tu as plusieurs types de module :
Feuil1 (2 et 3), ThisWorkbook, qui sont presents par
defaut. Ils sont apparents dans l'explorateur de projet
de l'editeur VB.
Tu peux y ajouter par Insertion -> des "Userform",
des "modules de classe", et des "modules standards".

merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...


Quel est ton message d'erreur ? Attention au type que tu
declares (Integer,String,...)


-----Message d'origine-----
merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...
j'ai ecrit la déclaration de la variable avant les sub :
est ce que c'est

cela la zone de déclaration des modules ?
qu'est ce qu'un module ordinaire ou standart ..
merci encore de votre aide..
+
christoiphe
"Philippe.R" a écrit dans le
message de

news:O2OFil%
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique"
en tête d'un module


ordinaire :
public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de
news:cdatl3$40e$

bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a
une variable "fig"



qui
prend des valeurs texte ou string. en lancant le sub
principal qui fat



appel
a tous les sous sub j'aimerais pouvoir passer la
valeur de la variable



dans
un des autres sous sub (qui n'utilise pas
directemetn la méthode call)



mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour
que sa valeur soit



valide dans tous le programme ? sinon comment
pourrais je faire ???



merci d'avance ed votre aide
chris








.













Avatar
Philippe.R
Bonsoir cm,
Essaye ainsi :

'dans un même module, cette déclaration
Global stRmsg As String
'et cette sub
Sub initprivatevariable()
stRmsg = "Cette variable peut être utilisée" _
& vbNewLine & " où on veut dans le classeur"
End Sub

'et dans un module de ton choix :
Sub useprivatevriable()
initprivatevariable
MsgBox stRmsg
End Sub

Car il est certain que tant que la première sub n'est pas exécutée, la variable est vide
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"cm" a écrit dans le message de news:cdeg5s$2pt$
oui mais ca marche pas chez moi
:(( :((
et chez vous ?

"docm" a écrit dans le message de
news:
Menu Insertion/Module (pour créer un nouveau Module)

Copier ton code dans ce nouveau Module:
Global strmsg As String

Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub

Sub useprivatevriable()
MsgBox strmsg
End Sub


"cm" wrote in message
news:cde62v$2i8$
ok pr les types de modules, j'ai bien un module qui est reliés a
thisworkbook...
il n' y a pas de message d'erreur mais la valeur de la variable ne passe
pas

d'un sub a l'autre.
j'ia utilisé ce peit prog pour tester :

Global strmsg As String
Sub initializeprivatevariable()
strmsg = "cette variable n,e peut etre utilsé que dans ce moiduke"
End Sub
Sub useprivatevriable()
MsgBox strmsg
End Sub

j'ai mis aussi a la place de global private et public mais rien n'y fait
..

pourquoi ca marche pas ?
il y a des optiosn a cocher quelques part ou une sécurité a enlever ???
merci pr ton aide
+
christophe

"J-Dan" a écrit dans le message de
news:2eae301c46bfa$40e3bf40$
qu'est ce qu'un module ordinaire ou standart ..


dans un classeur, tu as plusieurs types de module :
Feuil1 (2 et 3), ThisWorkbook, qui sont presents par
defaut. Ils sont apparents dans l'explorateur de projet
de l'editeur VB.
Tu peux y ajouter par Insertion -> des "Userform",
des "modules de classe", et des "modules standards".

merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...


Quel est ton message d'erreur ? Attention au type que tu
declares (Integer,String,...)


-----Message d'origine-----
merci de vos réponse mais j'ai déja essayer ces deux
solutions et elle ne

semble pas marcher chez moi ...
j'ai ecrit la déclaration de la variable avant les sub :
est ce que c'est

cela la zone de déclaration des modules ?
qu'est ce qu'un module ordinaire ou standart ..
merci encore de votre aide..
+
christoiphe
"Philippe.R" a écrit dans le
message de

news:O2OFil%
Bonjour Chris,
Si j'ai compris, en déclarant ta variable "publique"
en tête d'un module


ordinaire :
public fig
ça devrait coller.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"cm" a écrit dans le message de
news:cdatl3$40e$

bonjour,
j'ai crée plusierus sub, et dans un des sub, il y a
une variable "fig"



qui
prend des valeurs texte ou string. en lancant le sub
principal qui fat



appel
a tous les sous sub j'aimerais pouvoir passer la
valeur de la variable



dans
un des autres sous sub (qui n'utilise pas
directemetn la méthode call)



mais
ca ne marche pas.
il y a t il une manière de déclarer la variable pour
que sa valeur soit



valide dans tous le programme ? sinon comment
pourrais je faire ???



merci d'avance ed votre aide
chris








.