Iteration avec des picturebox

ffaabbss Messages postés 17 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 22 février 2005 - 18 févr. 2005 à 10:32
ffaabbss Messages postés 17 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 22 février 2005 - 18 févr. 2005 à 18:33
Bonjour,

Voila mon probleme, j'ai une page avec enormement de picturebox. Ceux-ci sont tous nommés de facon methodique comme "S1Z0C0","S1Z0C1","S1Z1C0","S1Z1C1". Dans mon programme ils peuvent prendre 2 couleurs qui correspondent à la valeur de 1 ou 0 dans un tableau. Mon probleme est que lorsque je fais apparaitre la page les picturebox sont tous de meme couleurs. Je voudrais pouvoir leur donner la couleur qui leur correspond en fonction de la valeur contenu dans le tableau mais sans etre oblige de faire un If ... Then pour chaque picturebox. Comment pourrais-je faire pour faire passer cela dans une boucle ou seul la 4° et 6° lettre de "S1Z0C0" par exmple changent.

Ex:
dim quatrieme_lettre as integer
dim sixieme_lettre as integer
dim variable_tableau
quatrieme_lettre =0
sixieme_lettre=0
variable_tableau=0
do
if tab(variable_tableau)=1 then
S1Z"quatrieme_lettre"C"sixieme_lettre"= &H80000005&
else:
S1Z"quatrieme_lettre"C"sixieme_lettre"= 255
end if
quatrieme_lettre= quatrieme_lettre+1
if quatrieme_lettre=6 then
sixieme_lettre=sixieme_lettre+1
end if
variable_tableau=variable_tableau+1
Loop variable_tableau = 70

Merci pour votre aide
ffaabbss

3 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
18 févr. 2005 à 10:48
Execute ce petit code. Je pense que tu sauras en faire quelque chose.





Dim ctl As Control



For Each ctl In Form1.Controls

If TypeOf ctl Is PictureBox Then

MsgBox ctl.Name

End If

Next ctl






Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
18 févr. 2005 à 10:58
Bon, j'ai eu le temps d'améliorer un peu le truc :







Dim ctl As Control

Dim quatrieme As String

Dim sixieme As String



For Each ctl In Form1.Controls

If TypeOf ctl Is PictureBox Then

quatrieme = Mid$(ctl.Name, 4, 1)

sixieme = Mid$(ctl.Name, 6, 1)

If quatrieme "0" And sixieme "0" Then

ctl.BackColor = vbRed

End If

If quatrieme "1" And sixieme "0" Then

ctl.BackColor = vbBlue

End If



' ...



End If

Next ctl








Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
ffaabbss Messages postés 17 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 22 février 2005
18 févr. 2005 à 18:33
Merci, ca marche nickel
0
Rejoignez-nous