Case a cocher "Option"

Résolu
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012 - 27 oct. 2010 à 19:52
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012 - 29 oct. 2010 à 08:40
Bonjour à tous,
Sous excel, je selectionne une cellule. Dans cette cellule, je dois y placer deux infos différente (ex:une cellule donne la valeur 1/2 congé, l'autre la valeur 1/2 RTT) parmis plusieurs choix d'absence. J'ai donc créé un userform avec plusieurs case à cocher. Chacune doit insérer dans la seule cellule sélectionnée sa propre valeur. Ma question est la suivante : Quel est le code le mieux approprié de manière à ce que lorsque deux choix sont fait(case cochée), et deux seulement la cellule soit incrémentée et qu'un troisième choix ou plus soit verrouillé sur l'userform?
Merci d'avance
eric

4 réponses

nyko283 Messages postés 27 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 16 février 2011 1
28 oct. 2010 à 17:35
Bonjour,

Je te conseillerais te faire une procedure dans un module puis que tu fasse appel a cette procédure à chaque fois qu'une valeur de checkbox est modifiée.

dans ta procédure tu commence par:

- une boucle qui parcourt toutes les checkbox avec un compteur que tu incrémentes à chaque fois que la valeur de la checkbox est a "True"
- une fois la boucle terminée si ton compteur est inferier à 2 alors :

- Boucle sur tous les checkbox pour passer la proprièté Visible à "True"
sinon
- boucle sur toutes les checkbox si valeur a "True" alors proprièté Visible a "True" sinon a "False"

Nicolas
Développeur en herbes
mais l'herbe pousse tranquilement
1
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
28 oct. 2010 à 19:41
Merci Nyko d'avoir pris la peine de me répondre !

Je suis sûr que ton idée est la bonne soluce. Simplement, je suis un développeur en herbe, et de là, à mettre ce code en place, j'en suis à des années lumières....
Mais c'est vraiment sympa de t'être intéressé à ma demande.
Merci Nyko


eric
0
nyko283 Messages postés 27 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 16 février 2011 1
28 oct. 2010 à 20:20
Bonjour Eric,

POur la boucle je te propose ceci :

Sub limiteReponse()
Dim Ctrl As Control
 Dim I As Integer
 I = 0
For Each Ctrl In UserForm1.Controls
  If TypeName(Ctrl) = "CheckBox" Then
    If Ctrl.Value = True Then
        I = I + 1
    End If
  End If
Next Ctrl
  
If I >= 2 Then ' code si 2 checkbox est cocher passer toutes les
'checkbox dont la valeur est à False  en Visible=False
    
Else ' I<2 alors' code si moins de 2 checkbox cocher
'Passer toutes les Checkbox en visible=True
    End If
Set Ctrl = Nothing
End Sub


la tu n'a plus Qu'a t'inspirer de la boucle pour modifier la valeur des checkbox

Nicolas
Développeur en herbes
mais l'herbe pousse tranquilement
0
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
29 oct. 2010 à 08:40
Merci Nyko d'avoir fait le travail pour moi, surtout que j'en aurais été incapable. Je vais de ce pas adapter cette boucle et voir comment tout cela se comporte. Je ne manquerai pas de t'informer. Encore merci pour ton aide précieuse.
A+

eric
0
Rejoignez-nous