me8me
Messages postés3Date d'inscriptionlundi 25 octobre 2010StatutMembreDernière intervention25 octobre 2010
-
25 oct. 2010 à 14:17
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
25 oct. 2010 à 14:48
bonjour à tous,
mon probléme est, j'ai 3 cellules en face de chaque cellule j'ai 3 checkbox, avec mes checkbox et mes cases je dois excuté une fonction mais avec des conditions, j'ai 8 conditions:
si ma 1 case est rempli et mon checkbox activé -> imprimepdf
si ma 2 case est rempli et mon checkbox activé -> imprimepdf
si ma 3 case est rempli et mon checkbox activé -> imprimepdf
si mes deux case 1 et 2 remplies et mes deux checkbox box sont activé -> imprimepdf
si mes deux case 1 et 3 remplies et mes deux checkbox box sont activé -> imprimepdf
si mes deux case 3 et 2 remplies et mes deux checkbox box sont activé -> imprimepdf
si mes trois cases remplies et mes 3 checkbox activés -> imprimepdf
j'ai excel 2003
voici un code pas finis que j'essai de tester mais ca marche pas comme je le veux:
Private Sub CheckBox1_Click()
If Not IsEmpty(Cells(2, 6)) And CheckBox1 Then
ImprimePDF
ElseIf Not IsEmpty(Cells(2, 6)) And Not IsEmpty(Cells(3, 6)) And CheckBox2 And CheckBox1 Then
ImprimePDF
ElseIf IsEmpty(Cells(2, 6)) = False And CheckBox1 And CheckBox2 And CheckBox3 And CheckBox4 Then
ImprimePDF
End If
End Sub
Private Sub CheckBox2_Click()
If IsEmpty(Cells(3, 6)) = False And CheckBox2 Then
ImprimePDF
ElseIf IsEmpty(Cells(3, 6)) = False And CheckBox1 And CheckBox2 And CheckBox3 And CheckBox4 Then
ImprimePDF
End If
End Sub
Private Sub CheckBox3_Click()
If IsEmpty(Cells(4, 6)) = False And CheckBox3 Then
ImprimePDF
ElseIf IsEmpty(Cells(4, 6)) = False And CheckBox1 And CheckBox2 And CheckBox3 And CheckBox4 Then
ImprimePDF
End If
End Sub
Private Sub CheckBox4_Click()
If IsEmpty(Cells(5, 6)) = False And CheckBox4 Then
ImprimePDF
ElseIf IsEmpty(Cells(5, 6)) = False And CheckBox1 And CheckBox2 And CheckBox3 And CheckBox4 Then
ImprimePDF
End If
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 oct. 2010 à 14:48
Salut
"mais ca marche pas comme je le veux"
Pas clair.
C'est à toi de faire l'analyse, pas à nous.
Ton code ne reflète pas tes conditions énumérées en tête de message. Il en manque.
Puisque le test est fait dans le _Click de la Checkbox, le test ne concernera que cette Checkbox et sa cellule associée.
Donc :
-1- dans tes tests, commence par le test de la CheckBox. Si elle n'est pas cochée, pas la peine de tester le reste : il n'y aura pas de ImprimePdf
-2- A quoi te sert de rechercher un couple ? De toute façon, le test 'couple' dépend de l'état de la CheckBox qui vient de changer d'état et de ta cellule.
Apprends à déboguer ton programme :
- F9 sur une ligne de code
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement
Pour info, ces deux formes sont équivalentes :
If IsEmpty(Cells(4, 6)) = False Then
If Not IsEmpty(Cells(4, 6)) Then
Ce serait bine de standardiser la syntaxe d'une manière ou de l'autre = plus facile à relire.
Es-tu sûr que Checbox1 (tout seul) renvoie bien son état ?
La syntaxe complète devrait être Checkbox.Value = True
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)