Boucle dans un userform

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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. 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+