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

CheckBOX délimité le nbre de case coché

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 !

ConsultantJP

XLDnaute Occasionnel
Bonjour à tous,

Mon sujet n'est pas complet car je n'avias pas assez de place mais j'ai deux questions au sujet des checkbox.


1ere Question :

J'ai environ 20 checkbox dans un USF et je voudrais que maximum 6 soit cochable, je sais que c possible mais je n'arrive pas a trouver la logique.

2Eme question :

Je voudrais que le caption des checkbox cochés lors de la validation soit envoyé dans les colonnes K à P (dans le cas ou 6 sont cochés).

Avez vous une idée pour cela ?

Merci
 
Re : CheckBOX délimité le nbre de case coché

Bonjour

Bonjour à tous,
1ere Question :
J'ai environ 20 checkbox dans un USF et je voudrais que maximum 6 soit cochable, je sais que c possible mais je n'arrive pas a trouver la logique.

Merci

Ci dessous un exemple de code pour limiter à 6 le nombre
Code:
Private Function nbchexcoche()
Dim £i As Byte
Dim action2 As String
Dim £Ctrl As Control
£i = 0
For Each £Ctrl In Me.Controls
    If TypeName(£Ctrl) = "CheckBox" Then
       If £Ctrl.Value = True Then £i = £i + 1
    End If
Next £Ctrl
nbchexcoche = £i
End Function

'code à mettre pour les CheckBox
Private Sub CheckBox1_Click()
If nbchexcoche > 6 Then CheckBox1.Value = False
End Sub

Une autre solution consiste à utiliser les modules de classes.

A tester

JP
 
Re : CheckBOX délimité le nbre de case coché

Bonjour Consultant, jp

Comme suggéré par jp, une autre solution, avec module de classe :

A placer dans le module de l'usf, événement "Initialize" de ce dernier.
Code:
Option Explicit
Private MesObjets() As New Classe1
Private Sub UserForm_Initialize()
Dim ctrl As Control, i As Byte
For Each ctrl In Me.Controls
    If TypeOf ctrl Is MSForms.CheckBox Then
        ReDim Preserve MesObjets(0 To i)
        Set MesObjets(i).monctrl = ctrl
        i = i + 1
    End If
Next ctrl
End Sub

A placer dans un module de classe nommé "Classe1"
Code:
Option Explicit
Public WithEvents monctrl As MSForms.CheckBox
Private Sub monctrl_Click()
Static b As Boolean
Dim ctrl As Control, c As Byte
If b = True Then Exit Sub
    If monctrl Then
        For Each ctrl In UserForm1.Controls
            If TypeOf ctrl Is MSForms.CheckBox And ctrl.Value = True Then c = c + 1
        Next ctrl
        If c > 6 Then
            b = True
            monctrl.Value = False
            b = False
        End If
    End If
End Sub

bon après midi
@+
 
Dernière édition:
Re : CheckBOX délimité le nbre de case coché

Merci à JP14 et Pierrot93 pour vos réponses,

J'ai utiliser la méthode de JP14 qui fonctionne à merveille !

Je sais que j'abuse mais auriez vous une idée pour ma deuxieme question :

Que le caption des caches cochés aille dans dans les colonnes de KàP ?

Merci
 
Re : CheckBOX délimité le nbre de case coché

re

avec ce que j'ai compris, j'ai modifié le code de mon module de classe ainsi, tu peux peut être t'en inspirer.

Code:
Option Explicit
Public WithEvents monctrl As MSForms.CheckBox
Private Sub monctrl_Click()
Static b As Boolean
Dim ctrl As Control, c As Byte
If b = True Then Exit Sub
    If monctrl Then
        For Each ctrl In UserForm1.Controls
            If TypeOf ctrl Is MSForms.CheckBox And ctrl.Value = True Then
                c = c + 1
                If c < 7 Then Cells(1, 10 + c).Value = ctrl.Caption
            End If
        Next ctrl
        If c > 6 Then
            b = True
            monctrl.Value = False
            b = False
        End If
    End If
End Sub

bonne soirée.
@+
 
- 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

T
Réponses
2
Affichages
937
T
T
Réponses
6
Affichages
2 K
thierry.bayard
T
B
Réponses
7
Affichages
13 K
benito
B
M
Réponses
0
Affichages
2 K
MARGAR
M
T
Réponses
22
Affichages
6 K
Thibault LB
T
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…