Boucle dans un userform

Fermé
jp - 11 mars 2013 à 23:03
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 12 mars 2013 à 14:04
Bonjour,

je voudrai créer une boucle sur ce code car je doit le répété 20 Fois

Private Sub ComboBoxTypeAcier1_Change()
Select Case ComboBoxTypeAcier1
Case "TOTO"
LabelA1.Visible = True
ComboBoxA1.Visible = True
TextBoxA1.Visible = True
LabelB1.Visible = False
ComboBoxB1.Visible = False
TextBoxB1.Visible = False
LabelC1.Visible = False
ComboBoxC1.Visible = False
TextBoxC1.Visible = False
Case "TITI"
LabelA1.Visible = True
ComboBoxA1.Visible = True
TextBoxA1.Visible = True
LabelB1.Visible = False
ComboBoxB1.Visible = False
TextBoxB1.Visible = False
LabelC1.Visible = False
ComboBoxC1.Visible = True
TextBoxC1.Visible = True
Case "TATA"
LabelA1.Visible = True
ComboBoxA1.Visible = True
TextBoxA1.Visible = True
LabelB1.Visible = True
ComboBoxB1.Visible = True
TextBoxB1.Visible = True
LabelC1.Visible = True
ComboBoxC1.Visible = True
TextBoxC1.Visible = True
Case Else
LabelA1.Visible = False
ComboBoxA1.Visible = False
TextBoxA1.Visible = False
LabelB1.Visible = False
ComboBoxB1.Visible = False
TextBoxB1.Visible = False
LabelC1.Visible = False
ComboBoxC1.Visible = False
TextBoxC1.Visible = False
End Select
End Sub


...

Private Sub ComboBoxTypeAcier20_Change()
Select Case ComboBoxTypeAcier20
Case "TOTO"
LabelA1.Visible = True
ComboBoxA20.Visible = True
TextBoxA20.Visible = True
LabelB20.Visible = False
ComboBoxB20.Visible = False
TextBoxB20.Visible = False
LabelC20.Visible = False
ComboBoxC20.Visible = False
TextBoxC20.Visible = False
Case "TITI"
LabelA20.Visible = True
ComboBoxA20.Visible = True
TextBoxA20.Visible = True
LabelB20.Visible = False
ComboBoxB20.Visible = False
TextBoxB20.Visible = False
LabelC20.Visible = False
ComboBoxC20.Visible = True
TextBoxC20.Visible = True
Case "TATA"
LabelA20.Visible = True
ComboBoxA20.Visible = True
TextBoxA20.Visible = True
LabelB20.Visible = True
ComboBoxB20.Visible = True
TextBoxB20.Visible = True
LabelC20.Visible = True
ComboBoxC20.Visible = True
TextBoxC20.Visible = True
Case Else
LabelA20.Visible = False
ComboBoxA20.Visible = False
TextBoxA20.Visible = False
LabelB20.Visible = False
ComboBoxB20.Visible = False
TextBoxB20.Visible = False
LabelC20.Visible = False
ComboBoxC20.Visible = False
TextBoxC20.Visible = False
End Select
End Sub

je pensais faire ça

Private Sub ComboBoxTypeAcier(i)_Change()
dm i as variant
for i = 1 to 20)
Select Case ComboBoxTypeAcier(i)
Case "TOTO"
LabelA(i).Visible = True
ComboBoxA(i).Visible = True
TextBoxA(i).Visible = True
LabelB(i).Visible = False
ComboBoxB(i).Visible = False
TextBoxB(i).Visible = False
LabelC(i).Visible = False
ComboBoxC(i).Visible = False
TextBoxC(i).Visible = False
Case "TITI"
LabelA(i).Visible = True
ComboBoxA(i).Visible = True
TextBoxA(i).Visible = True
LabelB(i).Visible = False
ComboBoxB(i).Visible = False
TextBoxB(i).Visible = False
LabelC(i).Visible = False
ComboBoxC(i).Visible = True
TextBoxC(i).Visible = True
Case "TATA"
LabelA(i).Visible = True
ComboBoxA(i).Visible = True
TextBoxA(i).Visible = True
LabelB(i).Visible = True
ComboBoxB(i).Visible = True
TextBoxB(i).Visible = True
LabelC(i).Visible = True
ComboBoxC(i).Visible = True
TextBoxC(i).Visible = True
Case Else
LabelA(i).Visible = False
ComboBoxA(i).Visible = False
TextBoxA(i).Visible = False
LabelB(i).Visible = False
ComboBoxB(i).Visible = False
TextBoxB(i).Visible = False
LabelC(i).Visible = False
ComboBoxC(i).Visible = False
TextBoxC(i).Visible = False
End Select
next i
End Sub

je sais qu il manque encore des choses.
Merci de m'aider

JP

3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
12 mars 2013 à 09:43
Bonjour,

Pour moi, pas besoin de boucle (sauf si je n'ai pas compris votre demarche)

un exemple de programme:

https://www.cjoint.com/c/CCmjOVEo1nv

A+
0
Bonjour

J'ai besoins d'une boucle
car dans mon user forme j'ai "20 ligne" de textBox ou Combox

et au lieut d'écire 20 fois le code

Private Sub ComboBoxTypeAcier(i)_Change()
Select Case ComboBoxTypeAcier(i)
Case "TOTO"
LabelA(i).Visible = True
ComboBoxA(i).Visible = True
TextBoxA(i).Visible = True
LabelB(i).Visible = False
ComboBoxB(i).Visible = False
TextBoxB(i).Visible = False
LabelC(i).Visible = False
ComboBoxC(i).Visible = False
TextBoxC(i).Visible = False
Case "TITI"
LabelA(i).Visible = True
ComboBoxA(i).Visible = True
TextBoxA(i).Visible = True
LabelB(i).Visible = False
ComboBoxB(i).Visible = False
TextBoxB(i).Visible = False
LabelC(i).Visible = False
ComboBoxC(i).Visible = True
TextBoxC(i).Visible = True
Case "TATA"
LabelA(i).Visible = True
ComboBoxA(i).Visible = True
TextBoxA(i).Visible = True
LabelB(i).Visible = True
ComboBoxB(i).Visible = True
TextBoxB(i).Visible = True
LabelC(i).Visible = True
ComboBoxC(i).Visible = True
TextBoxC(i).Visible = True
Case Else
LabelA(i).Visible = False
ComboBoxA(i).Visible = False
TextBoxA(i).Visible = False
LabelB(i).Visible = False
ComboBoxB(i).Visible = False
TextBoxB(i).Visible = False
LabelC(i).Visible = False
ComboBoxC(i).Visible = False
TextBoxC(i).Visible = False
End Select
End Sub

en remplàçant i par 1 puis 2 puis ... jusque à 20

j'aurai aimer faire une boucle


Merci de m'aider
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 12/03/2013 à 14:06
Re,

Desole, ca ne marche pas comme vous le demander. Dans l'exemple donne, c'est sur l'interception de l'evenement change des combobox que vous pourrez faire votre mise a jour de votre Userform. De ce fait,je ne vois pas l'utilite d'une boucle for next sur le combobox

A+
0