Simplification de code

Bonjour tout le monde,

Voilà mon soucis, à cause de mes maigres connaissance sur VBA, j'ai pondu ce code :

Private Sub ComboBox1_Change()

    Nombre_Pattes = UserFormX.ComboBox1.Value
    If UserFormX.ComboBox1.Value = 8 Then
        CheckBox5.Enabled = False
        CheckBox6.Enabled = False
        CheckBox7.Enabled = False
        CheckBox8.Enabled = False
        CheckBox27.Enabled = False
        CheckBox28.Enabled = False
        CheckBox29.Enabled = False
        CheckBox30.Enabled = False
        CheckBox34.Enabled = False
        CheckBox35.Enabled = False
        CheckBox36.Enabled = False
        CheckBox37.Enabled = False
        CheckBox13.Enabled = False
        CheckBox14.Enabled = False
        CheckBox15.Enabled = False
        CheckBox16.Enabled = False
        CheckBox20.Enabled = False
        CheckBox21.Enabled = False
        CheckBox22.Enabled = False
        CheckBox23.Enabled = False
    ElseIf UserFormX.ComboBox1.Value = 10 Then
        CheckBox5.Enabled = True
        CheckBox6.Enabled = False
        CheckBox7.Enabled = False
        CheckBox8.Enabled = False
        CheckBox27.Enabled = True
        CheckBox28.Enabled = False
        CheckBox29.Enabled = False
        CheckBox30.Enabled = False
        CheckBox34.Enabled = True
        CheckBox35.Enabled = False
        CheckBox36.Enabled = False
        CheckBox37.Enabled = False
        CheckBox13.Enabled = True
        CheckBox14.Enabled = False
        CheckBox15.Enabled = False
        CheckBox16.Enabled = False
        CheckBox20.Enabled = True
        CheckBox21.Enabled = False
        CheckBox22.Enabled = False
        CheckBox23.Enabled = False
        ElseIf UserFormX.ComboBox1.Value = 12 Then
        CheckBox5.Enabled = True
        CheckBox6.Enabled = True
        CheckBox7.Enabled = False
        CheckBox8.Enabled = False
        CheckBox27.Enabled = True
        CheckBox28.Enabled = True
        CheckBox29.Enabled = False
        CheckBox30.Enabled = False
        CheckBox34.Enabled = True
        CheckBox35.Enabled = True
        CheckBox36.Enabled = False
        CheckBox37.Enabled = False
        CheckBox13.Enabled = True
        CheckBox14.Enabled = True
        CheckBox15.Enabled = False
        CheckBox16.Enabled = False
        CheckBox20.Enabled = True
        CheckBox21.Enabled = True
        CheckBox22.Enabled = False
        CheckBox23.Enabled = False
        ElseIf UserFormX.ComboBox1.Value = 14 Then
        CheckBox5.Enabled = True
        CheckBox6.Enabled = True
        CheckBox7.Enabled = True
        CheckBox8.Enabled = False
        CheckBox27.Enabled = True
        CheckBox28.Enabled = True
        CheckBox29.Enabled = True
        CheckBox30.Enabled = False
        CheckBox34.Enabled = True
        CheckBox35.Enabled = True
        CheckBox36.Enabled = True
        CheckBox37.Enabled = False
        CheckBox13.Enabled = True
        CheckBox14.Enabled = True
        CheckBox15.Enabled = True
        CheckBox16.Enabled = False
        CheckBox20.Enabled = True
        CheckBox21.Enabled = True
        CheckBox22.Enabled = True
        CheckBox23.Enabled = False
        ElseIf UserFormX.ComboBox1.Value = 16 Then
        CheckBox5.Enabled = True
        CheckBox6.Enabled = True
        CheckBox7.Enabled = True
        CheckBox8.Enabled = True
        CheckBox27.Enabled = True
        CheckBox28.Enabled = True
        CheckBox29.Enabled = True
        CheckBox30.Enabled = True
        CheckBox34.Enabled = True
        CheckBox35.Enabled = True
        CheckBox36.Enabled = True
        CheckBox37.Enabled = True
        CheckBox13.Enabled = True
        CheckBox14.Enabled = True
        CheckBox15.Enabled = True
        CheckBox16.Enabled = True
        CheckBox20.Enabled = True
        CheckBox21.Enabled = True
        CheckBox22.Enabled = True
        CheckBox23.Enabled = True
    End If
End Sub

Le principe tout simple est d'activer ou de désactiver des checkbox en fonction du résultat dans la combobox. Je voulais savoir si il existait un moyen beaucoup plus simple de coder cela puisque ma solution me parait bien laborieuse, et si possible de m'expliquer en détail.

Merci du temps que vous passerez à regarder mon problème.

bonjour,

une possibilité :

Private Sub ComboBox1_Change()
Y1 = ComboBox1.Value > 8
Y2 = ComboBox1.Value > 10
Y3 = ComboBox1.Value > 12
Y4 = ComboBox1.Value > 14

    CheckBox5.Enabled = Y1
    CheckBox6.Enabled = Y2
    CheckBox7.Enabled = Y3
    CheckBox8.Enabled = Y4
    CheckBox27.Enabled = Y1
    CheckBox28.Enabled = Y2
    CheckBox29.Enabled = Y3
    CheckBox30.Enabled = Y4
    CheckBox34.Enabled = Y1
    CheckBox35.Enabled = Y2
    CheckBox36.Enabled = Y3
    CheckBox37.Enabled = Y4
    CheckBox13.Enabled = Y1
    CheckBox14.Enabled = Y2
    CheckBox15.Enabled = Y3
    CheckBox16.Enabled = Y4
    CheckBox20.Enabled = Y1
    CheckBox21.Enabled = Y2
    CheckBox22.Enabled = Y3
    CheckBox23.Enabled = Y4
End Sub

A+

bad

Merci pour ta réponse, c'est déjà 5 fois plus rapide.

J'aurais besoin d'un petite précision, ce bout de code :

Y1 = ComboBox1.Value > 8 

Il veut dire : Y1 prend la valeur du combox1 si cette valeur est supérieure à 8 ??

Amicalement,

Edit : en fait, je crois avoir compris, Y1 prend une variable booléenne en fonction de si l'inéquation à sa droite est vrai ou fausse?

c'est cela même !

A+

Rechercher des sujets similaires à "simplification code"