Userform : Action répétitive depuis checkbox sur autres contrôles

Bonjour à vous ,

Je suis bloqué dans un userform, je n'ai pas un niveau de vba très poussé mais en général j'arrive à mes fins. Sauf que là je sèche

J'ai plusieurs checkbox nommés spécifiquement et numérotés de 1 à 10, je souhaiterais que le fait de cocher une checkbox1 ait une action sur un textbox1 et un label1 (les masquer si c'est décoché ou les afficher si c'est coché) et que cela complète un tableur. Je pourrais coder sur chaque événement checkbox_change mais je vais avoir un grand nombre de situations similaires à coder et je souhaite apprendre de nouvelles méthodes. J'ai dû les nommer spécifiquement car il y aura plusieurs checkbox pour une même page.

Je précise avoir fait des recherches et fait des essais avec des modules de classe mais les checkbox en question n'étaient pas nommés spécifiquement et la procédure s'appliquait à tous les checkbox. En l’occurrence, je veux cibler certains checkbox situés sur différente pages d'un multipage.

Voici le code que je souhaite simplifier

Private Sub OffreIRrmail1_Change()
Select Case OffreIRrmail1.Value
Case True:
LaboffreIRmail1.Visible = True
MotifoffreIRrmail1.Visible = True
Worksheets("Feuil1").Range("B6") = "Oui"
Case False:
LaboffreIRmail1.Visible = False
MotifoffreIRrmail1.Visible = False
Worksheets("Feuil1").Range("B6") = "Non"
End Select
End Sub
Private Sub MotifoffreIRrmail1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Worksheets("Feuil1").Range("C6") = MotifoffreIRrmail1
End Sub

Private Sub OffreIRrmail2_Change()
Select Case OffreIRrmail2.Value
Case True:
LaboffreIRmail2.Visible = True
MotifoffreIRrmail2.Visible = True
Worksheets("Feuil1").Range("B7") = "Oui"
Case False:
LaboffreIRmail2.Visible = False
MotifoffreIRrmail2.Visible = False
Worksheets("Feuil1").Range("B7") = "Non"
 End Select
End Sub

Private Sub MotifoffreIRrmail2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Worksheets("Feuil1").Range("C7") = MotifoffreIRrmail2
End Sub

Le fichier simplifié (le fichier final aura beaucoup plus d'information mais ça vous l'aurez compris) :

12checkbox.xlsm (22.68 Ko)

Je vous remercie par avance de toute l'aide que vous pourrez m'apporter à ce propos.

Bonne journée à vous.

Bonsoir,

ci-jointe une proposition avec un module de classe pour les checkbox.

26checkbox1.xlsm (37.70 Ko)

Bonjour Thev,

Merci beaucoup d'avoir pris du temps pour m'aider.

J'ai compris le principe de votre solution en passant par les Tag des différents contrôles liés au checkbox et j'ai pu l'adapter sur un autre check box. La où je coince c'est pour l'incrémentation d'une nouvelle colonne de données liée à ce nouveau check-box.

Il semble que ce soit le code cmd_OK_Click() qui fasse cette incrémentation mais je sèche pour l'adapter.

Est ce qu'il vous serait possible de m'aider à ce propos?

Je vous remets mon adaptation de votre code en pièce jointe

9checkbox1.xlsm (29.58 Ko)

Bonne journée.

l semble que ce soit le code cmd_OK_Click() qui fasse cette incrémentation mais je sèche pour l'adapter.

Il n'y a rien à faire au niveau du code. Il faut que le libellé figurant en Feuil1 soit identique au titre de la checkbox (propriété "caption")

Il suffit donc de remplacer "inacceptable" par "Offre inacceptable".

De même, l'intitulé des lignes : Offre1, Offre2;... doit correspondre aux titres des pages de votre formulaire.

NB: le format des cellules affichant "OUI" et "NON" est à recopier car leur véritable valeur est 0 (faux) ou 1 (vrai)

21checkbox2.xlsm (35.74 Ko)

, c'est vraiment top ! Merci d'avoir pris du temps pour m'aider thev. Je suis en train de l'adapter sur mon projet. Si je n'ai pas de soucis pour cela, je mettrais mon sujet comme résolu.

Bonne fin de journée.

Rechercher des sujets similaires à "userform action repetitive checkbox controles"