Boucle avec des Labels [Résolu]

Messages postés
23
Date d'inscription
vendredi 7 août 2009
Dernière intervention
7 août 2011
- - Dernière réponse : onix64
Messages postés
23
Date d'inscription
vendredi 7 août 2009
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
PS : Ne nomme pas ton label simplement 'Label' : c'est un mot clé du langage et tu risquerais de le perturber.
Commenter la réponse de cs_Jack
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Dernière intervention
4 août 2012
0
Merci
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
Commenter la réponse de pile_poil
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Dernière intervention
4 août 2012
0
Merci
jack a été plus précis que moi

si c'est la solution, penser : REPONSE ACCEPTEE
Commenter la réponse de pile_poil
Messages postés
23
Date d'inscription
vendredi 7 août 2009
Dernière intervention
7 août 2011
0
Merci
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
Commenter la réponse de onix64
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Pas de soucis, les deux fonctionneront ... à condition que le contenu de la Caption de ton Label soit un nom de fichier valide et existant.
Commenter la réponse de cs_Jack
Messages postés
23
Date d'inscription
vendredi 7 août 2009
Dernière intervention
7 août 2011
0
Merci
Merci
Commenter la réponse de onix64

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.