checkBox dynamiques événements Click à la chaîne
Bonjour,
Je crée dynamiquement une série de checkBox auxquelles j'associe (à chaque fois) une classe permettant de gérer l'événement Click sur ces dernières.
Cette classe "pointe" sur d'autres checkBox filles.
Les objets (associés aux checkBox) une fois instanciés sont stockés dans un dictionnaire de données.
Tout marche bien hormis le comportement du Click. En effet celui ci déclenche des événements à la chaîne.
Je m'explique; soit une chechBox, quand je la décoche, je fais en sorte que toutes ses checkBox "filles" (de niveau inférieur) soient décochées:
- Le fait de décocher la checkBox parente déclenche bien l’événement Click.
- Je parcours ensuite les CheckBox "filles" et modifie leur valeur (.Value = False) et (au malheur :cry:) cette action déclenche l'événement Click pour chacune! Et ça je ne le veux pas et ne le comprends pas!
En effet pour moi le fait de modifier la valeur devrait être lié à l’événement Change et pas Click!!?
Si vous avez déjà rencontré ce problème et réussi à le contourner, je suis preneur.
Ci dessous le code du Click incriminé.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 'Pour gérer l'évènement clic sur les objets type CheckBox
Private Sub ChkBx_Clik()
Dim checked As Boolean
Dim i As Integer
Dim ChkBxFille As MSForms.CheckBox
Dim tabFilles As Variant
checked = ChkBx.Value
'On décoche tous les enfants
If Not checked Then
If Len(mListeChkBxFilles) > 0 Then
tabFilles = Split(mListeChkBxFilles, "|") 'la liste des filles est une chaine contenant leur nomsséparés par des "|"
For i = LBound(tabFilles) To UBound(tabFilles)
Set ChkBxFille = ChkBx.Parent.Controls(tabFilles(i))
With ChkBxFille
If .Enabled Then .Value = checked '!!! déclenche un autre onClick :-( !!!!
End With
Next i
End If
End If
Set ChkBxFille = Nothing
End Sub |
Merci d'avance à tous.