Prob module et index

Signaler
Messages postés
4
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
18 mars 2006
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Salut, je suis en train de faire un petit prog où j'aimerai rendre le code plus clair et utilisé des modules.

Mais j'ai un probleme : J'utilise beaucoup de label que j'ai indéxé, et je n'arrive poa a y faire appel dans ma procédure.

Vla un exemple de mon code dans ma procédure :



Public Sub couleur(Label As Label)



Randomize

For j = 1 To 6

res = Int(9 * Rnd)

Label(j).BackColor = col(res)



Next

End Sub



Et voici comment je l'appel :

Call couleur (Label1).



Pouvait vous m'aider et me dire comment faire marche l'index. Merki beaucoup

6 réponses

Messages postés
386
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
19 février 2018
2
Bonjour,

Cela est normal, il faut mettre le nom de la form avec le label désirer. Ex : si ta form s'appel "Form1" et le Label s'appel "Label1", tu dois ecrire comme si dans ton module

From1.Label1.Caption = "Test"

Voila et A++
[Gally Home Corp]
Messages postés
4
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
18 mars 2006

Vla je viens de changer dans mon module :

Public Sub couleur(Label As Label)





Randomize

For j = 1 To 6

res = Int(9 * Rnd)

Form1.Label(j).BackColor = col(res)



Next

End Sub

Et dans ma form :

Call couleur (Label1)



Mais sa ne marhce toujours pas
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
1- Ne nomme pas ton argument "Label" !! Il va y avoir confusion avec le type "Label". Utilise LBL par exemple
Public Sub couleur(Lbl As Label)
Randomize
For j = 1 To 6
res = Int(9 * Rnd)
Form1.Lbl(j).BackColor = col(res)
Next
End Sub
P.S. : Inutile de tester le code ci-dessus, il n'est pas encore correct !!

2- Si Lbl est de type Label, c'est une étiquette de texte, d'accord ? or, quand tu mets Lbl(j), tu sous-entends que Lbl est une COLLECTION de quelquechose !! Pas pareil du tout, ça !!! Une solution est de transmettre en argument, non pas le nom de la collection de labels, mais la form elle-même, comme ceci :
Private Sub couleur(F As Form)
Dim Lbl As Label, j as long, res as long
Randomize
For j = 1 to 6
res = Int(9 * Rnd)
F.Label1(j).BackColor = col(res)
Next
End Sub
Alors, je n'ai pas testé ce bout de code, mais il doit être OK normalement !!
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
NOTA : La déclaration "Lbl As Label" est inutile dans mon dernier bout de code !!
Messages postés
4
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
18 mars 2006

Ok merki beaucoup sa marche bien maintenant ;)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
validez svp, çà évite aussi les pertes de temps pour tout le monde