[Résolu] Contraint à cliquer 2 fois sur CheckBox

Kim75

XLDnaute Occasionnel
Bonjour le forum

J’ai dans UserForm une procédure du type :
Code:
Private Sub CheckBox1_Change()
    ... code CheckBox1
End Sub
Private Sub ListBox1_Change()
    Me.CheckBox1.Value = False
    ... code ListBox1
End Sub
Le souci est que si je sélectionne sur un item de la ListBox1 (ce qui met à false CheckBox1), et que je clique sur la case à cocher CheckBox1, le code de la CheckBox1 fonctionne correctement, mais la case ne se coche pas du premier coup, il faut que je clique une seconde fois pour qu’elle se coche.

Je me demandais s’il y avait un propriété pour rendre un CheckBox cochable du premier coup lorsque, précédemment, on lui aurait affecté la valeur false pour telle ou telle autre raison, un peu comme si on on lui rendait son état initial lors du load de l’UserForm (mais sans reloader l’UserForm bien entendu).

Cordialement, Kim.
 
Dernière édition:

Kim75

XLDnaute Occasionnel
Re : Contraint à cliquer 2 fois sur CheckBox

Hello Hulk,

Merci pour l’indication, mais ça ne change rien,
J’utilise en fait le code de Jacques BOISGONTIER,
Je te joins le fichier exemple au cas tu voudrais vérifier,

Cordialement, Kim.
 

Pièces jointes

  • CheckBox.xls
    57.5 KB · Affichages: 72
  • CheckBox.xls
    57.5 KB · Affichages: 75
  • CheckBox.xls
    57.5 KB · Affichages: 68

Papou-net

XLDnaute Barbatruc
Re : Contraint à cliquer 2 fois sur CheckBox

Bonsoir Kim75, Hulk,

Il y a redondance dans le code :

Le Change du CheckBox modifie ListBox3 qui appelle à son tour la modification de CheckBox.

Pas facile de s'y retrouver dans tout cela : si tu nous disais plutôt, Kim, ce que tu cherches à faire exactement ?

A +

Cordialement.
 

Kim75

XLDnaute Occasionnel
Re : Contraint à cliquer 2 fois sur CheckBox

Bonjour Papou-net,

Merci pour la réponse,

- Avec la même structure de base de données (sur le plan logique),
- Et avec des outils ergonomiques (listbox au lieu de combobox),

Je voulais simplement pouvoir filtrer en fonction, d’abord des items de la listbox1 (colonne A), ensuite des items de la listbox2 (colonne B), pour afficher le résultat final dans la listbox3 (colonne C),

Avec, si possible bien entendu, cette option en plus ajoutée via la checkbox « tous », pour afficher dans la listbox3 (colonne C) tous les items correspondants à l'item sélectionné dans la listbox1 (colonne A),

Mais si tu vois une autre façon de faire, Papou-net, meilleur ou plus pratique, je suis naturellement preneur, le but justifie les moyens comme on dit. :)

Cordialement, Kim.
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : Contraint à cliquer 2 fois sur CheckBox

Re, slt Papou :)

Les codes de M'sieur Boisgontier sont délicats à modifier tellement ils sont élaborés. Pas facile de s'y retrouver sans lui.

Néanmoins, remplace le code de la ListBox2_Change comme ceci...
Code:
Private Sub ListBox2_Change()
    
    Set mondico = CreateObject("Scripting.Dictionary")
    
    For Each C In Range(f.[A2], f.[A65000].End(xlUp))
        If C = Me.ListBox1 And C.Offset(, 1) = Me.ListBox2 Then
            mondico(C.Offset(, 2)) = C.Offset(, 2)
            Me.CheckBox1.Value = False
        End If
    Next C

    If mondico.Count > 0 Then
        Temp = mondico.items
        Call Tri(Temp, LBound(Temp), UBound(Temp))
        Me.ListBox3.List = Temp
    End If
    
End Sub
Ça à l'air d'arranger ton souci...

Bon week.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 925
Membres
103 984
dernier inscrit
maliko67