Boucle avec des Labels [Résolu]

onix64 23 Messages postés vendredi 7 août 2009Date d'inscription 7 août 2011 Dernière intervention - 20 avril 2010 à 15:59 - Dernière réponse : onix64 23 Messages postés vendredi 7 août 2009Date d'inscription 7 août 2011 Dernière intervention
- 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

cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 20 avril 2010 à 16:11
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 20 avril 2010 à 16:13
0
Utile
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
pile_poil 682 Messages postés vendredi 6 avril 2007Date d'inscription 4 août 2012 Dernière intervention - 20 avril 2010 à 16:17
0
Utile
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
pile_poil 682 Messages postés vendredi 6 avril 2007Date d'inscription 4 août 2012 Dernière intervention - 20 avril 2010 à 16:19
0
Utile
jack a été plus précis que moi

si c'est la solution, penser : REPONSE ACCEPTEE
Commenter la réponse de pile_poil
onix64 23 Messages postés vendredi 7 août 2009Date d'inscription 7 août 2011 Dernière intervention - 20 avril 2010 à 17:03
0
Utile
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
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 20 avril 2010 à 17:33
0
Utile
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
onix64 23 Messages postés vendredi 7 août 2009Date d'inscription 7 août 2011 Dernière intervention - 20 avril 2010 à 18:34
0
Utile
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.