Incrémenter un objet ? (urgent)

lock07 Messages postés 18 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 11 août 2004 - 28 mai 2003 à 09:54
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 4 juin 2003 à 00:55
Salut à tous, j'ai une petite question !
J'ai créé dans un formulaire une série de label nommés Étiquette1, Étiquette2...
Je voudrais pouvoir faire un controle pour ensuite remplir la couleur du labal. Le pb c que je dois passer dans un For pour éviter de passer 3 heures à faire mes 50 000 lignes de codes.
Donc faudrait un truc dans le genre :
dim i as integer
for i=1 to 50
Étiquette&i.backcolor=255
next i
mais ça marche pas ! si vous avez une solution, ça m'arrangerait merci ^_^

Des fois il vaut mieux se taire et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet

7 réponses

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
28 mai 2003 à 11:10
met un index 0 au premier label et ainsi de suite pour les autres....1,2,3,4
ensuite la boucle avec
label(i).backcolor=??

normalement ca marche
0
lock07 Messages postés 18 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 11 août 2004
28 mai 2003 à 11:15
Ah merde j'aurais pu y penser...
Merci, je vais tester ça tout de suite ! ^_^

Des fois il vaut mieux se taire et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet
0
lock07 Messages postés 18 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 11 août 2004
28 mai 2003 à 11:26
Ben ça marche pas :(
j'ai fait ça :

Private Sub Form_Load()
Dim i As Integer
For i = 0 To 10
Étiquette(i).Caption = "Bouh"
Next i
End Sub

et il me sort que Etiquette n'est pas une fonction valide... j'ai du mal comprendre ce que tu voulais me dire, désolé, tu pourrais esayer de préciser STP ! :big)

Des fois il vaut mieux se taire et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet
0
UnExPeCtEdSpy Messages postés 139 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 3 juillet 2003
28 mai 2003 à 11:45
La methode d'indexage consiste a utilisé la propriété Index d'un control (ici de ton label) :

1)soit tu créais toi meme tes x labels en modifiant le champ Index a la mano, en métant de 0 a x-1
et tu fais ta boucle comme tu as fait

'x nombre de label
Dim i As Integer
For i = 0 To x - 1
Label(i).Caption = "Bouh"
Next i

2)soit tu créais un seul label et tu mets le champs Index a 0
et tu utilise le load pour les cloner

'x nombre de label
Dim i As Integer
For i = 0 To x - 1
Load Label(i)
Label(i).left = Label(i).left + Label(i).width 'etcc mise en forme
Label(i).Caption = "Bouh"
Next i

A+

,.~*`'^~.(^. :question) .^),.~^'`*~.
0

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

Posez votre question
UnExPeCtEdSpy Messages postés 139 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 3 juillet 2003
28 mai 2003 à 11:47
Errata dans le 2) le for devra commencer a 1 car l'index zero existe déjà
,.~*`'^~.(^. :question) .^),.~^'`*~.
0
lock07 Messages postés 18 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 11 août 2004
2 juin 2003 à 15:10
C'est bon j'ai trouvé un autre moyen, si ça vous interresse :

For j = 1 To 100
Controls("Étiquette" & j).BackColor = couleur
Next j

Des fois il vaut mieux se taire et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
4 juin 2003 à 00:55
Bonjour
Autre solution pour changer la couleur de fond de TOUS les labels :

Dim x As Control
For Each x In Me
If TypeOf x Is Label Then x.BackColor = vbRed
Next
0
Rejoignez-nous