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
 

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
je me pose une question Lol
dans cette procédure
Tu dis :
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.
VB:
'Si la CheckBox 1 est cochée
'alors toutes les CheckBox sont désactivées
donc : y compris celle qui est Clicker donc
peux tu m'explique le But ?
Cordialement
jean marie
 

NONO14

XLDnaute Impliqué
Bonjour le Fil
je me pose une question Lol
dans cette procédure
Tu dis :

VB:
'Si la CheckBox 1 est cochée
'alors toutes les CheckBox sont désactivées
donc : y compris celle qui est Clicker donc
peux tu m'explique le But ?
Cordialement
jean marie
Bonjour ChTi160
Je me suis mal exprimé, il aurait été idiot d'agir de la sorte. Le but était qu'il n'y ait qu'une seule case cochée.
Maintenant je n'ai plus ce soucis avec la solution de vgendron.
Merci tout de même d'avoir soulevée la question 👍
 

ChTi160

XLDnaute Barbatruc
Re
Merci vgendron
donc il faut introduire une comparaison !
VB:
  If Chk_1.Value = True Then
'alors toutes les CheckBox sont désactivées
        For Each ctrl In Me.Controls
            If TypeName(ctrl) = "CheckBox" And ctrl.name <> Chk_1.name Then
                ctrl.Enabled = False
            End If
        Next ctrl
un truc du genre
Jean marie
 

Dudu2

XLDnaute Barbatruc
Sacré discussion de 5 pages pour checker une Checkbox à l'exclusion des autres !
1728045727180.gif
 

NONO14

XLDnaute Impliqué
Re
Merci vgendron
donc il faut introduire une comparaison !
VB:
  If Chk_1.Value = True Then
'alors toutes les CheckBox sont désactivées
        For Each ctrl In Me.Controls
            If TypeName(ctrl) = "CheckBox" And ctrl.name <> Chk_1.name Then
                ctrl.Enabled = False
            End If
        Next ctrl
un truc du genre
Jean marie
Plus besoin avec le code de vgendron. Les Check sont dans le même GroupeName, alors dès qu'une case est cochée les autres sont décochées
 

TooFatBoy

XLDnaute Barbatruc
Quand on ne veut qu'une seule option active à la fois, on utilise des boutons radio.
Ils sont justement faits pour ça.

Maintenant que tu n'as plus qu'une seule Frame, ils dialogueront automatiquement entre eux pour que seul le dernier sélectionné soit coché.
Donc si tu remplaces toutes tes CheckBox par des OptionButton, et que tu supprimes toutes les macros inutiles, alors là tu as vraiment simplifié ton code, et aussi la maintenance de celui-ci. ;)


🖖
 

ChTi160

XLDnaute Barbatruc
Bonjour,
Question on a 7 CheckBox ou OptionButton
(7 jours)
On clique sur l'un , il se met a True , les autres ne sont pas à True . Que doit engendrer la mise de ce Control a True. Si on met ce control a False que doit il se passer ?
Il y a devant chaque control (jour) une ligne de TextBox (horaires) y'a t'il une interaction entre le control jour et ces textBox par exemple les masquer(si control jour a False
Bonne journée
Jean marie
 
Dernière édition:

NONO14

XLDnaute Impliqué
Bonjour TootFatB
Quand on ne veut qu'une seule option active à la fois, on utilise des boutons radio.
Ils sont justement faits pour ça.

Maintenant que tu n'as plus qu'une seule Frame, ils dialogueront automatiquement entre eux pour que seul le dernier sélectionné soit coché.
Donc si tu remplaces toutes tes CheckBox par des OptionButton, et que tu supprimes toutes les macros inutiles, alors là tu as vraiment simplifié ton code, et aussi la maintenance de celui-ci. ;)


🖖
Bonjour TootFatBoy
Je ne comprends plus, dois-je mettre des CheckBox ou des OptionButton. vgendron m'a donné un code avec des CheckBox et il fonctionne très bien, ça fait le job.
 

NONO14

XLDnaute Impliqué
Bonjour,
Question on a 7 CheckBox ou OptionButton
(7 jours)
On clique sur l'un , il se met a True , les autres ne sont pas à True . Que doit engendrer la mise de ce Control a True. Si on met ce control a False que doit il se passer ?
Il y a devant chaque control (jour) une ligne de TextBox (horaires) y'a t'il une interaction entre le control jour et ces textBox par exemple les masquer(si control jour a False)
Edit : Je mets une vidéo de mon interprétation lol
(Moi j'utilise des CommandButton)
Bonne journée
Jean marie
Bonjour ChTi160,
Merci beaucoup pour ton exemple très intéressant. Cependant, dans mon cas, la saisie doit être automatique lors du clic, on récupère l'heure système, il n'est pas question de saisie.
 

Dudu2

XLDnaute Barbatruc
@NONO14, si tu as un code qui fonctionne avec des CheckBoxes qui te donnent la liberté d'avoir des cadres ou pas, pourquoi tout changer pour passer sur des OptionButtons ? D'ailleurs je ne comprends pas pourquoi tu as supprimé ces cadres. C'était plus "design" avec.
En plus les OptionButtons c'est moche. Ce petit cercle ridicule avec son petit point ridicule...
1728115391514.gif

Les CheckBoxes, quelle élégance !
1728115417446.gif


D'ailleurs, si j'ai fait une ressource qui permet de gérer les CheckBoxes facilement, c'est principalement pour des raisons esthétiques.
1728115594378.gif
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
203

Statistiques des forums

Discussions
315 094
Messages
2 116 143
Membres
112 669
dernier inscrit
Guigui2502