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+
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+