Variable dans une procedure...

Résolu
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006 - 21 mars 2006 à 19:42
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006 - 23 mars 2006 à 14:22
Salut
J'ai une procédure qui permet de griser mais buttons mais en fait j'ai plusieurs feuilles...et donc je passe en paramètre le nom de la feuille et je voudrais donc griser les bouttons de celle-ci


Public Sub DeGriserBouton(ByVal NomPage As String)


Ferme.bt_rep1.Enabled = True
Ferme.bt_rep2.Enabled = True
Ferme.bt_rep3.Enabled = True
Ferme.bt_rep4.Enabled = True
Ferme.bt_rejouer.Enabled = True

End Sud

Donc en fait, Ferme est le nom passé en parametre et il y a d'autres noms comme Ville, Jungle...Mais je ne trouves pas comment faire pour remplacer le NomPage

Par ex Ferme est passé en paramètre

NomPage.bt_rep1.Enabled = True ça doit me donner ça mais la on comprend plus que la feuille s'appelle NomPage...vous voyez le truc ^^

Merci d'avance

19 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 mars 2006 à 17:12
POur placer la feuille dans laquelle tu est; utilise le mot cle Me qui representera la feuille dans laquelle tu es

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 mars 2006 à 17:29
Tout à fait, tes objets te serviront à rien à ce moment là

Donc ca donne :
dans un module :
Public Sub DeGriserBouton(ByRef Page As Object)

Page.bt_rep1.Enabled = True
Page.bt_rep2.Enabled = True
Page.bt_rep3.Enabled = True
Page.bt_rep4.Enabled = True
Page.bt_rejouer.Enabled = True

End Sud

Et dans tes feuilles, là ou tu veux dégriser les boutons :
Call DeGriserBouton(Me)

_

<spa></spa>
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 mars 2006 à 20:12
Il ne faut pas passer le nom de la feuille, mais la feuille elle même :
Public Sub DeGriserBouton(ByRef Page As Object)

Page.bt_rep1.Enabled = True
Page.bt_rep2.Enabled = True
Page.bt_rep3.Enabled = True
Page.bt_rep4.Enabled = True
Page.bt_rejouer.Enabled = True

End Sud

_

<spa></spa>
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
21 mars 2006 à 20:42
oui mais le probleme c'est qu'il croit que j'ai une feuille qui s'appelle Page avec ta facon...
j'ai comme erreur 'Qualificateur incorrect'...
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
21 mars 2006 à 20:46
Tu y va bien par Ref et non par Val??
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
21 mars 2006 à 20:51
ouep j'ai fait le changement
0
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
21 mars 2006 à 21:06
Vb.net ou vb6???
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
21 mars 2006 à 21:27
Vb6 :)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 mars 2006 à 21:29
Page est le nom de la variable, pas de la form !

GrossoModo, cela veut dire que tu ne passe pas le nom de la feuille, mais la feuille elle même :

Donc si tu l'appelle ainsi :
Call DeGriserBouton(Form1)

Alors les contrôles de Form1 seront modifié, et si tu l'appelle par :
Call DeGriserBouton(Form2)
Ce seront alors les contrôles de Form2 qui seront modifiés, etc.

_

<spa></spa>
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
21 mars 2006 à 21:43
oui mais en fait j'ai attribué le nom des pages à des variables

en gros j'ai 4 feuilles Ferme Jungle Ville

Fer = Ferme
Jun = Jungle
Ville = Vil

et quand j'appelle la fonction je fais Call DeGriserBouton(Fer)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 mars 2006 à 22:04
Aie Aie Aie, de quel type sont tes variables ? Il faut que ce soit des Object et non des String ou des Variant.

En gros, ca doit donner :
Dm Fer As Object
Dim Jun As Object
Dim Vil As Object

Set Fer = ferme
Set Jun = Jungle
Set Vil = Ville

call DeGriserBouton(Fer)

_

<spa></spa>
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
21 mars 2006 à 22:22
euh c'est type string :s et commet ça se fait qu'il fait mettre en Object ?
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
21 mars 2006 à 23:54
Par contre tu les mets où les

Set Fer = ferme
Set Jun = Jungle
Set Vil = Ville

parce qu'il me dit que ça peu pas être mis ds une procedure
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 mars 2006 à 06:18
Tu es en quel langage ?

Il faut que ce soit des Object pour que ce soit les feuilles qui soit stockées, et non uniquement leur nom.

_

<spa></spa>
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
22 mars 2006 à 08:57
Salut,

Si ce sont des feuilles (form) qui doivent etre passees en parametre pourquoi ne pas mettre


Public Sub DeGriserBouton(ByRef LeForm As Form)

with LeForm
.bt_rep1.Enabled = True
.bt_rep2.Enabled = True
.bt_rep3.Enabled = True
.bt_rep4.Enabled = True
.bt_rejouer.Enabled = True
end with
End Sud

Mais il est vrai que des precisions quant au langage et aux types seraient les bienvenues

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
22 mars 2006 à 14:19
Je suis sur Vb6 et euh j'utilise juste un module avec mes procédures dedant c'est tout...

ça je déclare en haut de mon module ?
Dm Fer As Object
Dim Jun As Object
Dim Vil As Object

et je mets ou ça ?

Set Fer = ferme
Set Jun = Jungle
Set Vil = Ville

merci pour l'aide en tout cas
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 mars 2006 à 14:29
Ben à quoi ce te sert d'utiliser des variables publiques pour stocker tes feuilles ???

_

<spa></spa>
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
22 mars 2006 à 17:07
Pour sotcker le nom de la feuille et pouvoir passé en parametre la feuille dans laquelle je suis quand je veux griser mes buttons.
0
jiojioforever Messages postés 59 Date d'inscription samedi 14 mai 2005 Statut Membre Dernière intervention 30 mai 2006
23 mars 2006 à 14:22
un grand merci à vous deux...c'est vraiment énorme ce ME hey hey :)
0
Rejoignez-nous