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

NONO14

XLDnaute Occasionnel
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
 

Dudu2

XLDnaute Barbatruc
alors que l'option button est fait pour ca...
Ça ne marche pas lorsque les OptionButtons sont dans les Frames différents ce qui le cas ici.
1728027770309.png
 

vgendron

XLDnaute Barbatruc
Ça ne marche pas lorsque les OptionButtons sont dans les Frames différents ce qui le cas ici.
Regarde la pièce jointe 1204508
oui c'est mon post 27
le choix qui se présente est donc
Des optionButton avec le meme groupe name ==> l'utilisation des frames pour faire joli est à remplacé par des labels (voir mon fichier)

des checkbox toujours avec le meme groupe name + ton code
 

Dudu2

XLDnaute Barbatruc
Je ne comprends pas ce que tu fais.
Si tu veux qu'une CheckBox quelconque cochées parmi toute cette liste:
1728027986742.png

décoche toute autre CheckBox de cette même liste, tu mets toutes les CheckBoxes dans le même groupe. Je parle des GroupNames et pas de ta séparation fonctionnelle en Frames et en couleurs.
Il me semble que @vgendron l'a déjà indiqué.
 

NONO14

XLDnaute Occasionnel
Je ne comprends pas ce que tu fais.
Si tu veux qu'un CheckBox quelconque cochées parmi toute cette liste:
Regarde la pièce jointe 1204510
tu mets toutes les CheckBoxes dans le même groupe.
Il me semble que @vgendron l'a déjà indiqué.
Je fais comme ça parce qu'on me l'a demandé. Je ne fais pas toujours ce que je veux, le chef commande, j'exécute. Cependant, je vais voir pour la solution de vgendron.
Désolé de vous faire perdre votre temps.
 

vgendron

XLDnaute Barbatruc
Je fais comme ça parce qu'on me l'a demandé. Je ne fais pas toujours ce que je veux, le chef commande, j'exécute. Cependant, je vais voir pour la solution de vgendron.
Désolé de vous faire perdre votre temps.
non tu n'as pas compris je crois
pour qu'une SEULE checkbox soit active à la fois,
1) tu utilises le code de dudu2 (en prenant soin de ne pas meme le meme nom entre le module et la fonction
2) sur les DIX checkbox, tu mets le MEME groupname (quelque soit la frame dans laquelle ils sont)
 

TooFatBoy

XLDnaute Barbatruc
Je fais comme ça parce qu'on me l'a demandé. Je ne fais pas toujours ce que je veux, le chef commande, j'exécute.
Montre-lui cette discussion. Il verra qu'à cause de certaines choses qu'il impose tu as perdu une journée de travail, et complexifié le code, pour rien (puisque de simples boutons suffisent), et à partir de là il devrait arrêter de te mettre des bâtons dans les roues.
 

Discussions similaires

Réponses
3
Affichages
146

Statistiques des forums

Discussions
314 092
Messages
2 105 729
Membres
109 420
dernier inscrit
raphael19