A voir également:
- VB : Case à cocher
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Range vb - Forum VB / VBA
3 réponses
Bonsoir,
Content d'avoir put te dépanner :)
En effet, l'utilisation des variables est essentielle en programmation. Je ne peux que t'encourager maîtriser leur usage.
Mais pour résoudre ton souci avec la case CheckTous, il ne faut pas utiliser l'évènement Click, mais MouseUp. J'explique.
L'évènement Click se produit lorsqu'on clique sur un objet, ça tu le sais.
Mais pour une CheckBox, le fait de changer son état par programme (en lui affectant une valeur, Check1.value=0 par exemple) déclenche l'évènement Click comme si on avait effectivement cliqué sur la CheckBox.
Dans le code que je t'ai donné, la CheckTous ne marche pas pour décocher toutes les CheckBox, même en complétant le code comme tu l'as fait.
Heureusement, en cliquant sur un objet, on génère aussi les évènements MouseDown (bouton enfoncé) et MouseUp (bouton relaché).
Plutot que Click on va utiliser MouseUp et le tour est joué.
Changes Private Sub Check1_Click() par
Private Sub Check1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Fais la même chose pour toutes les autres CheckBox et complètes le code de la CheckTous par ce tu avais présenti:
Else
Check1.Value = 0
...
End If
et ça devrait marcher.
Bonne continuation ;)
Content d'avoir put te dépanner :)
En effet, l'utilisation des variables est essentielle en programmation. Je ne peux que t'encourager maîtriser leur usage.
Mais pour résoudre ton souci avec la case CheckTous, il ne faut pas utiliser l'évènement Click, mais MouseUp. J'explique.
L'évènement Click se produit lorsqu'on clique sur un objet, ça tu le sais.
Mais pour une CheckBox, le fait de changer son état par programme (en lui affectant une valeur, Check1.value=0 par exemple) déclenche l'évènement Click comme si on avait effectivement cliqué sur la CheckBox.
Dans le code que je t'ai donné, la CheckTous ne marche pas pour décocher toutes les CheckBox, même en complétant le code comme tu l'as fait.
Heureusement, en cliquant sur un objet, on génère aussi les évènements MouseDown (bouton enfoncé) et MouseUp (bouton relaché).
Plutot que Click on va utiliser MouseUp et le tour est joué.
Changes Private Sub Check1_Click() par
Private Sub Check1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Fais la même chose pour toutes les autres CheckBox et complètes le code de la CheckTous par ce tu avais présenti:
Else
Check1.Value = 0
...
End If
et ça devrait marcher.
Bonne continuation ;)
Lord Zero
Messages postés
459
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
15 juin 2018
115
28 mars 2011 à 22:47
28 mars 2011 à 22:47
quel VB?
bonsoir
colle ce code dans ta form
j'espère que ça repond à ta question
;)
colle ce code dans ta form
Option Explicit Dim Labels(6) As String Private Sub Check1_Click() If Check1.Value = 0 Then CheckTous.Value = 0 End If End Sub Private Sub Check2_Click() If Check2.Value = 0 Then CheckTous.Value = 0 End If End Sub Private Sub Check3_Click() If Check3.Value = 0 Then CheckTous.Value = 0 End If End Sub Private Sub Check4_Click() If Check4.Value = 0 Then CheckTous.Value = 0 End If End Sub Private Sub Check5_Click() If Check5.Value = 0 Then CheckTous.Value = 0 End If End Sub Private Sub Check6_Click() If Check6.Value = 0 Then CheckTous.Value = 0 End If End Sub Private Sub CheckTous_Click() If CheckTous.Value = 1 Then Check1.Value = 1 Check2.Value = 1 Check3.Value = 1 Check4.Value = 1 Check5.Value = 1 Check6.Value = 1 End If End Sub Private Sub CmdAfficher_Click() Dim i As Integer 'efface Labels For i = 1 To 6 Labels(i) = "" Next 'lire les Check i = 1 If Check1.Value = 1 Then Labels(i) = Check1.Caption i = i + 1 End If If Check2.Value = 1 Then Labels(i) = Check2.Caption i = i + 1 End If If Check3.Value = 1 Then Labels(i) = Check3.Caption i = i + 1 End If If Check4.Value = 1 Then Labels(i) = Check4.Caption i = i + 1 End If If Check5.Value = 1 Then Labels(i) = Check5.Caption i = i + 1 End If If Check6.Value = 1 Then Labels(i) = Check6.Caption i = i + 1 End If 'affiche Labels Label1.Caption = Labels(1) Label2.Caption = Labels(2) Label3.Caption = Labels(3) Label4.Caption = Labels(4) Label5.Caption = Labels(5) Label6.Caption = Labels(6) End Sub
j'espère que ça repond à ta question
;)
Bonjour,
Juste pour vous dire que le code a bien marché. Je vous remercie beaucoup. Le seul souci c'est que quand on clique sur la case "Tous" pour décocher toutes les cases, cela ne se fait pas. J'ai essayé de faire quelque chose dans l'interface code du "CheckTous" :
Private Sub CheckTous_Click()
If CheckTous.Value = 1 Then
Check1.Value = 1
Check2.Value = 1
Check3.Value = 1
Check4.Value = 1
Check5.Value = 1
Check6.Value = 1
Else
Check1.Value = 0
Check2.Value = 0
Check3.Value = 0
Check4.Value = 0
Check5.Value = 0
Check6.Value = 0
End If
End Sub
Mais ça n'a pas marché. Sinon, Votre code est vraiment intéressant car ça m'a permis de gagner du temps par rapport à ce que j'ai fait. C'est vrai que ce que j'ai fait marche bien mais ça m'a pris beaucoup du temps parce que je n'ai pas déclaré des variables comme vous l'avez fait. C'est compliqué pour moi d'utiliser des variables, je ne sais pas.
Encore une fois merci.
Juste pour vous dire que le code a bien marché. Je vous remercie beaucoup. Le seul souci c'est que quand on clique sur la case "Tous" pour décocher toutes les cases, cela ne se fait pas. J'ai essayé de faire quelque chose dans l'interface code du "CheckTous" :
Private Sub CheckTous_Click()
If CheckTous.Value = 1 Then
Check1.Value = 1
Check2.Value = 1
Check3.Value = 1
Check4.Value = 1
Check5.Value = 1
Check6.Value = 1
Else
Check1.Value = 0
Check2.Value = 0
Check3.Value = 0
Check4.Value = 0
Check5.Value = 0
Check6.Value = 0
End If
End Sub
Mais ça n'a pas marché. Sinon, Votre code est vraiment intéressant car ça m'a permis de gagner du temps par rapport à ce que j'ai fait. C'est vrai que ce que j'ai fait marche bien mais ça m'a pris beaucoup du temps parce que je n'ai pas déclaré des variables comme vous l'avez fait. C'est compliqué pour moi d'utiliser des variables, je ne sais pas.
Encore une fois merci.