Boucle avec des Labels

Résolu
onix64 Messages postés 23 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 7 août 2011 - 20 avril 2010 à 15:59
onix64 Messages postés 23 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 7 août 2011 - 20 avril 2010 à 18:34
Bonjour,

Je bataille avec un tout petit problème de rien du tout mais qui pour moi débutant m'empêche d'avancer.
J'ai bien trouvé des exemples de codes avec des boucles sur le forum mais certains ne marchent pas et je ne comprends pas.

J'ai ça :

Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label6.Visible = True
Label7.Visible = True
Label8.Visible = True
Label9.Visible = True
Label10.Visible = True
Label11.Visible = True
Label12.Visible = True
Label13.Visible = True
Label14.Visible = True
Label15.Visible = True

Et je voudrais faire une boucle du style ci-dessous que je mets dans le Form Load :

Dim i as integer
For i = 1 to 15
Label(i).visible = true
Next i
End sub

J'ai le message d'erreur "Sub or function not defined" en mettant le mot "Label" en surbrillance. J'ai essayé plein de variante avec l'option index mais rien n'y fait je dois louper qqchose.

Merci d'avance

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 avril 2010 à 16:11
Salut
Oui, Label25 n'est pas la même chose que Label1(25)
Dans le premier cas, c'est un objet simple
Dans le deuxième cas, c'est un objet indexé (voir sa propriété Index)

Tu n'as plus qu'à changer le nom de chacun de tes Labels en un nom unique, monLabel, et de mettre leur Index à la valeur souhaitée.
Attention : les index commencent à 0, pas à 1
Et là, ton programme fonctionnera :
   For i = 0 to 14
      monLabel(i).Visible = true
   Next i

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 avril 2010 à 16:13
PS : Ne nomme pas ton label simplement 'Label' : c'est un mot clé du langage et tu risquerais de le perturber.
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
20 avril 2010 à 16:17
donnes un seul et même nom à tous tes labels
VB6 te les indexera dans un groupe ils deviendront alors
label(1)....... label(15) et ta boucle fonctionnera




si c'est la solution, penser : REPONSE ACCEPTEE
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
20 avril 2010 à 16:19
jack a été plus précis que moi

si c'est la solution, penser : REPONSE ACCEPTEE
0

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

Posez votre question
onix64 Messages postés 23 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 7 août 2011
20 avril 2010 à 17:03
Salut
Merci pour ta réponse ! c'est bon ça marche.
J'avais compris l'histoire de l'option index et j'avais déjà essayé mais je pensais que ça commençait à 1 et non à 0 c'est là que je me suis trompé .
Idem pour le nom de mon Label le fait de l'appeler 'Label' me mets le bordel dans mon programme.

Une dernière question sur l'histoire de renommer des noms avec des i ou j mais qui concerne un nom de fichier :
If Label30.Caption = "Albi" Then

img1.Picture = LoadPicture("H:\Arnaud\Albi.gif")
ElseIf Label30.Caption = "Bayonne" Then
img1.Picture = LoadPicture("H:\Arnaud\Bayonne.gif")
ElseIf Label30.Caption = "Biarritz" Then
img1.Picture = LoadPicture("H:\Arnaud\Biarritz.gif"
Else: img1.Picture = LoadPicture("H:\Arnaud\Toulouse.gif")
End If

J'aimerai faire un truc du genre :
 Label30.Caption = j

img1.Picture = LoadPicture("H:\Arnaud" & j & ".gif")

ou sinon :
 img1.Picture = LoadPicture("H:\Arnaud" & Label30.Caption & ".gif")


Qu'en penses tu ? la deuxième solution m'intéresserait plus. Le truc c'est de pouvoir charger l'image qui a le même nom que celui que l'on rentre dans le Caption du Label30. Merci encore
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 avril 2010 à 17:33
Pas de soucis, les deux fonctionneront ... à condition que le contenu de la Caption de ton Label soit un nom de fichier valide et existant.
0
onix64 Messages postés 23 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 7 août 2011
20 avril 2010 à 18:34
Merci
0
Rejoignez-nous