Peut-on simplifier ce code ?

Bonjour à tous,

J'ai un UserForm avec plusieurs CheckBox.

Le fait de cliquer sur certaines d'entres elles en désactivent d'autres.

D'ou ce code:

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then

CheckBox2.Enabled = False

CheckBox3.Enabled = False

CheckBox4.Enabled = False

CheckBox6.Enabled = False

CheckBox16.Enabled = False

CheckBox17.Enabled = False

CheckBox15.Enabled = False

CheckBox18.Enabled = False

Else

CheckBox2.Enabled = True

CheckBox3.Enabled = True

CheckBox4.Enabled = True

CheckBox6.Enabled = True

CheckBox16.Enabled = True

CheckBox17.Enabled = True

CheckBox15.Enabled = True

CheckBox18.Enabled = True

End If

End Sub

Est-il possible de simplifier ce code ?

J'ai essayé de tout mettre sur la même ligne avec des And, mais ça ne fonctionne pas.

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then

CheckBox2.Enabled = False And CheckBox3.Enabled = False And........And CheckBox18.Enabled =False

Else

CheckBox2.Enabled = True And CheckBox3.Enabled = True And.......And CheckBox18.Enabled =True

End If

End Sub

Merci à tous pour votre aide,

a bientôt,

xorsankukai

Bonjour

A voir

Private Sub CheckBox1_Click()
Dim Num
Dim I As Integer

  Num = Array(2, 3, 4, 6, 15, 16, 17, 18)
  For I = 0 To UBound(Num)
    Me.Controls("CheckBox" & Num(I)) = Not Me.CheckBox1
  Next I
End Sub

Bonsoir Banzai64,

Merci pour ta réponse.

Ton code ne fonctionne pas, du moins il ne fait pas ce que je voudrai,

Lorsque je coche CheckBox1 : rien ne se passe

Lorsque je décoche CheckBox1 : CheckBox 2, 3, 4, 5, 6, 15, 16, 17, et 18 sont cochés puis grisées.

Ce que je voudrai, c'est que si CheckBox1 est cochée, CheckBox2, 3, 4, 6, 15, 16, 17,et 18 soient grisées (et donc qu'on ne puisse pas les cocher).

Si je décoche CheckBox1, alors toutes les CheckBox sont à nouveau accessibles.

Je te remercie pour ton soutien,

Cordialement,

xorsankukai

Bonjour,

ajoute la propriété qui t'intéresse : .enabled

Me.Controls("CheckBox" & Num(I)).enabled = Not Me.CheckBox1

Et désactive ton ancien code en le mettant en commentaire.

eric

Bonjour

Merci zavai oublié Enabled

Merci eriiic

Merci Banzai64 et Eriiic !!

Le code fonctionne à merveille.

Je clôture donc ce post.

A bientôt sur le forum,

Cordialement,

xorsankukai

Rechercher des sujets similaires à "simplifier code"