Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion NONO14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Hello

tu viens en fait de répondre à une question que je me posais depuis un moment (sans pour autant aller au bout de la reflexion puisque le code me donnait satisfaction)
la classe est issue originellement de patricktoulon
je l'ai adapté pour que le traitement du textbox soit différent selon son tag..
et donc oui.. la partie .tag (ou .groupname dans le cas présent) qui remet à "" est à supprimer..
Je pense que cette modif lors de l'initiate n'est valide que jusqu'à ce que le formulaire soit relancé..
 
Maintenant il n'y a plus que 2 boutons, entrée et sortie. L'agent doit pointer à chaque arrivée et à chaque départ. Il clique sur un des 2 boutons et l'heure système est prise en compte. Si besoin je peux remettre mon classeur.
hello
je pense qu'il faudrait que tu postes la dernière version de ton fichier avec le choix que tu as fait (optionbouton ou checkbox)

PS; le code que tu m'attribues vient de Dudu2..
moi, j'ai juste modifié en ajoutant une classe cChkbox pour faire un appel "unique" à la fonction de dudu2
ce qui évite tous les "chkboxX_Click"
 
Re
Oui un classeur avec dernière mouture et surtout explications de ce que tu as et ce que tu veux !
en fonction du Userform utilisé;
qui fait quoi et comment doit il le faire !
("Maintenant il n'y a plus que 2 boutons, entrée et sortie. L'agent doit pointer à chaque arrivée et à chaque départ. Il clique sur un des 2 boutons et l'heure système est prise en compte")

Jean marie
 
Re
Regarde ce que j'ai modifié .
Pour ne pas permettre l'effacement ou la modification dans le TextBox Txt_DateJour , j'ai remplacé celui ci par un Label : LBl_DateJour
VB:
Private Sub UserForm_Initialize()
With UfPointage
      .LBl_DateJour.Caption = Application.Proper(Format(Date, "dddd dd mmmm yyyy"))
End With
End Sub
Jean marie
 

Pièces jointes

  • GestionHoraires-2.gif
    88.6 KB · Affichages: 9
Re
dans cette procédure (simplification)
j'ai supprimé tout les "Unload Me" dans les If Me.CheckBoxX.Value=True
VB:
Private Sub Cmb_Valider_Click()
'Vérifier chaque case à cocher et exécuter une action spécifique
                     Unload Me '----> placé Ici
    If Me.CheckBox1.Value = True Then
à voir !
jean marie
 
Désolé d'avoir tardé à te répondre. Merci beaucoup, c'est plutôt une bonne idée.
 
Merci pour ton code, mais ça ne fonctionne pas. Si je mets Unload me là où tu as proposé de le mettre, le reste du code ne s'exécute pas.
 
Toutes mes excuses à Dudu2 pour cette méprise.
 
le (ou les) unload me doivent intervenir AVANT l'affichage du formulaire GestTemps car tu l'affiches en modal

si dans ma proposition avec select case, tu es sur qu'il n'y a pas de elsecase ET que dans TOUS les cases, tu as besoin de fermer le formulaire, alors, tu peux mettre un "unload me" unique AVANT le select case
 
J'ai essayé, mais ça ne déclenche pas le reste de la procédure.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
298
Réponses
2
Affichages
201
Réponses
72
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…