Microsoft 365 Simplifier un code pour activer ou désactiver des CheckBox

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,

Ayant remis à plat un projet, et pour suivre le bon conseil de TootFatBoys, je créé cette nouvelle discussion.
J'ai mis en place ce code qui permet de désactiver toutes les CheckBox de mon formulaire si il y en a une de cochée, hors, j'ai dix CheckBox à gérer.
Dois-je répéter ce code pour les dix ou existe t-il une manière de le simplifier pour qu'il s'applique si on clique sur une des dix CheckBox ?
Peut-être faut-il passer par un module... Je ne sais pas.
Merci par avance pour votre aide

VB:
Private Sub Chk_1_Click()
Dim ctrl As Control

'Si la CheckBox 1 est cochée
    If Chk_1.Value = True Then

'alors toutes les CheckBox sont désactivées
        For Each ctrl In Me.Controls
            If TypeName(ctrl) = "CheckBox" Then
                ctrl.Enabled = False
            End If
        Next ctrl

'Sinon elles restent activées
    Else
        For Each ctrl In Me.Controls
            If TypeName(ctrl) = "CheckBox" Then
                ctrl.Enabled = True
            End If
        Next ctrl
    End If
End Sub
 

NONO14

XLDnaute Impliqué
Bonjour,

Désolé, il faut reprendre la V4 de la ressource car il y avait bug lorsque la CheckBox est dans un ou plusieurs Frames et/ou un ou plusieurs Multipage. Je ne savais pas que le UserForm.ActiveControl est alors le Frame ou le Multipage et non le Control CheckBox.

Repars sur les CheckBoxes en utilisant la V4 de la ressource, car les OptionButtons sont en groupes dans un Frame et indépendants des autres OptionButtons dans d'autres Frames, de plus, une fois qu'un OptionButton a été cliqué, il n'est plus possible d'en avoir aucun de marqué.
Regarde la pièce jointe 1204499
Alors qu'avec le système des CheckBoxes il n'y a pas ces 2 inconvénients.
Regarde la pièce jointe 1204500
Bonjour Dudu2,
Merci beaucoup pour votre participation et votre exemple. J'ai mis en place votre code, cependant lorsqu'une CheckBox d'un groupe est cochée, elle reste cochée, même si l'on change de groupe. Peut-on palier à ça ?
 

Dudu2

XLDnaute Barbatruc
Bonjour @NONO14,
Si tu veux que lorsque tu coches une CheckBox, une autre CheckBox se décoches, il faut que tu mettes ces 2 CheckBoxes dans le même groupe. C'est le groupe (propriété CheckBox.GroupName) qui permet ça.
Sinon qu'est-ce que tu appelles "groupe" ?
 

NONO14

XLDnaute Impliqué
Bonjour @NONO14,
Si tu veux que lorsque tu coches une CheckBox, une autre CheckBox se décoches, il faut que tu mettes ces 2 CheckBoxes dans le même groupe. C'est le groupe (propriété CheckBox.GroupName) qui permet ça.
Sinon qu'est-ce que tu appelles "groupe" ?
J'ai mis respectivement chaque CheckBox dans son groupeName dans les propriétés de la CheckBox. Il y a donc 4 groupes.
Lorsque je clique sur une CheckBox j'ai ce message d'erreur qui apparaît " Erreur de compilation ! Variable ou procédure attendue et non une variable"
Voici mon fichier. Il s'agit du formulaire UfMenusAdmin. Mdp = admin01
 

Pièces jointes

  • GestPersonnnel.xlsm
    633.3 KB · Affichages: 4

vgendron

XLDnaute Barbatruc
bon après.. tout ce code pour gérer l'unicité de la selection de checkbox alors que l'option button est fait pour ca...
en plus.. un chef plutot borné qui va voir des coches va surement etre amené à te dire." Bah pourquoi je peux pas en selectionner plusieurs si je veux faire plusieurs choses à la fois.."
 

Discussions similaires

Réponses
3
Affichages
203

Statistiques des forums

Discussions
315 092
Messages
2 116 119
Membres
112 666
dernier inscrit
Coco0505