Boucle dans un userform

jp -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. JP
     
    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
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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