Case a cocher dans userform

  • Initiateur de la discussion dth_2003
  • Date de début
D

dth_2003

Guest
bonjour le forum,

Bon voila mon problème, j'ai un userform comprenant une cinquantaine de cases a cocher, on doit en cochez très exactement 10, pas une de plus pas une de moins, et je valide avec un bouton. J'ai deux questions :
1 - est-il possible d'empêcher de cocher une onzième case ?
2 - comment attribuer la valeur des cases a 10 variables ?

Merci d'avance, j'espère avoir été plus ou moins clair.

dth
 
D

DestyNov@

Guest
Salut =)
pour vérifier le nb de case cochée, perso je déclarerais une variable globale qui s'incrémenterai à chaque case cochée... ce qui vt dire qu'à chaque case tu dois associée une même fonction qui ferait un petit ++.
je passerais en paramètres la propriété name de la case à cocher, qui serait soit un numéro, soit le nom que tu veux stocker dans un tableau de 10 cases.
voilà ma soluce, il doit y en avoir bien d'autres... ++
-=Desty=- EnJoY It =))))
 
@

@+Thierry

Guest
=> DEMO UserForm Mass CheckBox Contrôle en Boucle

Bonsoir Dth, Desty, le Forum

Tiens j'avais juste ceci dans mon sac à barbatrucs !!!

Voici une démo où je n'ai pas eu grand chose à adapter pour ton cas Dth.

Je suis assez loin de ce que propose Desty, mais toutes les case à cocher même à Rome, quoiqu'on devrait plutôt aller à Athènes en cette semaine!!

Je vous laisse découvrir... Just Enjoy It, for the fun

Bonne Soirée
@+Thierry
 

Pièces jointes

  • USF-CheckBox-One-To-One-MassUpdate-V01.zip
    17.8 KB · Affichages: 250
D

dth_2003

Guest
Me revoilou,

Dis @+Thierry, pourrais tu m'expliquer simplement les fonctions que tu utilise ici :

For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.CheckBox Then
If CTRL.Value = True Then
TheListe = TheListe & CTRL.Name & vbCrLf
End If
End If
Next


Comme je ne la saisi pas finiement, si je puis dire, je ne parviens pas a la modifier pour mon application, ici ce que tu reprends c'est le nom de la checkbox, moi ce que j'aimerais c'est le chiffre qui lui est associé et mettre ce chiffre dans une vairiable tableau.

Merci encore.
 
@

@+Thierry

Guest
Bonjour Dth, Desty, le Forum

Euh, oui c'est très bien mais encore ?

Tu ne sembles pas avoir l'habitude de fréquenter les forums de partage de connaissance. Ce n'est pas à sens unique. Ici sur XLD nous avons pour habitude de partager les solutions trouvées...

Pour ceux et celles qui seraient un jour confrontés au même besoin :

Voici une solution pour retourner dans un tableau les valeurs numériques des numéros de chaque CheckBox cochées dans le programme ci-dessus :

Private Sub CommandButton4_Click()
Dim CTRL As Control
Dim TabChqbox() As Integer
Dim x As Byte

For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.CheckBox Then
If CTRL.Value = True Then
ReDim Preserve TabChqbox(x)
TabChqbox(x) = CInt(Right(CTRL.Name, Len(CTRL.Name) - 8))
x = x + 1
End If
End If
Next

'ici juste une vérif de retour de données :
For x = 0 To UBound(TabChqbox)
Range("C" & x + 27) = TabChqbox(x)
Next
End Sub


Bonne Journée
@+Thierry
 
D

dth_2003

Guest
Bonjour a tous,

désolé @+Thierry de ne pâs avoir indiqué ma solution, mais en fait elle n'avait rien de génial. Dans la boucle que j'indiquais plus haut je l'avais juste remplacer :

For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.CheckBox Then
If CTRL.Value = True Then
BonNum(I) = CTRL.Caption
I = I + 1
End If
End If
Next

Rien de bien incroyable mais cela faisait ce que je voulais. Je vais voir pour ta dernière proposition.

Merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 587
Messages
2 090 009
Membres
104 344
dernier inscrit
nesrine