Checkbox vbChecked et vbUnchecked, ne fonctionne que dans un sens
Coucoutte :P
Je travaille sur l’amélioration d'un logiciel (cartoucheur pour jingles) et j'ai besoin de désélectionner des checkbox (qui sont en mode graphique mais ca change rien), quand on en clique une autre.
Pour le sujet, j'ai reproduit de manière symbolique, un form avec 3 checkbox, et le code suivant :
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 26 27 28 29 30 31 32
| Private Sub Check1_Click()
If Check2.Value = vbChecked Or Check3.Value = vbChecked Then
Check1.Value = vbChecked
Check2.Value = vbUnchecked
Check3.Value = vbUnchecked
'[...]Autres opérations, dans le code du logiciel cartoucheur[...]
End If
End Sub
Private Sub Check2_Click()
If Check1.Value = vbChecked Or Check3.Value = vbChecked Then
Check1.Value = vbUnchecked
Check2.Value = vbChecked
Check3.Value = vbUnchecked
'[...]Autres opérations, dans le code du logiciel cartoucheur[...]
End If
End Sub
Private Sub Check3_Click()
If Check1.Value = vbChecked Or Check2.Value = vbChecked Then
Check1.Value = vbUnchecked
Check2.Value = vbUnchecked
Check3.Value = vbChecked
'[...]Autres opérations, dans le code du logiciel cartoucheur[...]
End If
End Sub |
Considérons que pour chaque ligne, je viens de lancer le logiciel, toutes les checkbox sont décochées.
Ce qui fonctionne :
Si je clique sur la 1, et que je clique sur la 2, la 1 se décoche et la 2 se coche.
Si je clique sur la 1, et que je clique sur la 3, la 1 se décoche et la 3 se coche.
Si je clique sur la 2, et que je clique sur la 3, la 2 se décoche et la 3 se coche.
Ce qui ne fonctionne pas :
Si je clique sur la 3, et que je clique sur la 2, la 3 se décoche pas et la 2 ne se coche pas.
Si je clique sur la 3, et que je clique sur la 1, la 3 se décoche pas et la 1 ne se coche pas.
Si je clique sur la 2, et que je clique sur la 1, la 2 se décoche pas et la 1 ne se coche pas.
Ce code fonctionne encore moins :
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 26 27 28 29
| Private Sub Check1_Click()
If Check2.Value = vbChecked Or Check3.Value = vbChecked Then
If Check2.Value = vbChecked Then Check2.Value = vbUnchecked
If Check3.Value = vbChecked Then Check3.Value = vbUnchecked
'[...]Autres opérations, dans le code du logiciel cartoucheur[...]
End If
End Sub
Private Sub Check2_Click()
If Check1.Value = vbChecked Or Check3.Value = vbChecked Then
If Check1.Value = vbChecked Then Check1.Value = vbUnchecked
If Check3.Value = vbChecked Then Check3.Value = vbUnchecked
'[...]Autres opérations, dans le code du logiciel cartoucheur[...]
End If
End Sub
Private Sub Check3_Click()
If Check1.Value = vbChecked Or Check2.Value = vbChecked Then
If Check1.Value = vbChecked Then Check1.Value = vbUnchecked
If Check2.Value = vbChecked Then Check2.Value = vbUnchecked
'[...]Autres opérations, dans le code du logiciel cartoucheur[...]
End If
End Sub |
Je comprends rien et ça fait 5h que je rame :mur:
Une tite idée pour le palmé ? :oops:
Merkouin :)