ligne de code avec if qui ne marche pas

  • Initiateur de la discussion Initiateur de la discussion hidozo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hidozo

XLDnaute Occasionnel
Bonjour,

j'ai une sub qui me permet en fobnction de déterlminer un résultat en fonction de présence de critères dans les checkbox.

extrait du code :
If Checkbox1 = True And Checkbox2 = True And Checkbox3 = True And Checkbox4 = True And Checkbox5 = True And Checkbox6 = True And Checkbox7 = True
Then Worksheets("listes").Select
Me.TextBox2.Value = [C1] & [d1]

J'en ai une dizaine comme ça dans ma sub (tous les cas de figure)

Ca ne marche pas je ne ne comprends pas pourquoi

Est-ce que qu'elqu'un peut m'aider ?

Cordialement

hidozo
 
Re : ligne de code avec if qui ne marche pas

Bonjour,
je ne sais pas si c'est la recopie du code, ou l'erreur, mais il faut que le Then soit à la fin de la ligne If....
De plus, pour alléger, tu peux éviter = True, si le Checkbox est à true, la condition If Checkbox te renvoie True

regarde le code :

Code:
If Checkbox1 And Checkbox2 And Checkbox3 And Checkbox4 And Checkbox5 _
    And Checkbox6 And Checkbox7 Then
With Worksheets("listes")
    Me.TextBox2.Value = .[C1] & .[d1]
End With
 
Re : ligne de code avec if qui ne marche pas

Re bonjour,

Je sais pourquoi ça ne marchait pas :

pour allèger mes codes, j'ai essayé de faire les If... sur un module dans une sub et je voulais en cliquant sur le bouton de validation appelé la sub, idem pour la textbox.

mais en remettant ton code dans la su textbox2 directement, cela fonctionne.

Je ne cherche plus à comprendre, ça fonctionne, donc je vais pouvoir avancer.

Merci Bhbh de ta précieuse aide
 
Re : ligne de code avec if qui ne marche pas

Re-,

Je ne cherche plus à comprendre, ça fonctionne,....

Pas bien.....😛

Le mot clé Me fait référence à l'objet ou la feuille sur lequel il est appelé...
Tu ne peux l'utiliser que dans des userforms, ou des onglets, dans les évènements..
Ainsi, dans ce code :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Me.Name
End Sub

A chaque changement de cellule, tu auras un message avec le nom de l'onglet

Pour un userform, c'est bien pratique, car en tapant Me, VBA te propose toutes les propriétés ou objets de cet userform...
 
Re : ligne de code avec if qui ne marche pas

Oui, merci pour l'explication, Effectivement, c'est mieux de comprendre (en plus dans mon boulot, je cherche à comporendre ce que font les autres).

Mais mon code ne marche pas, je te l'ai envoyé en message privé bhbh

Et il me dit : erreur de compilation :
end if sans bloc if


A plus
 
Re : ligne de code avec if qui ne marche pas

Re-,
il vaut mieux rester sur le forum, qu'en MP....

J'ai un peu simplifié ton code
2 erreurs :
- CheckBox8 est écrit checbox8
- et tu as mis un signe de retour à la ligne après le Then
Code:
If Checkbox1 = False Or Checkbox2 = False Or Checkbox3 = False Or Checkbox4 = False _
Or Checkbox5 = False Or Checkbox6 = False Or Checkbox7 = False _
And checbox8 And Checkbox9 = False And Checkbox10 = False Then [COLOR="Red"]_[/COLOR]
With Worksheets("listes")

regarde le code simplifié :

Code:
Private Sub TextBox2_Change()
With Worksheets("listes")
If CheckBox1 And CheckBox2 And CheckBox3 And CheckBox4 And CheckBox5 _
    And CheckBox6 And CheckBox7 Then
        Me.TextBox2.Value = .[C1] & .[d1]
End If
If Not (CheckBox1) Or Not (CheckBox2) Or Not (CheckBox3) Or Not (CheckBox4) _
Or Not (CheckBox5) Or Not (CheckBox6) Or Not (CheckBox7) Then
    If Checkbox8 And Not (Checkbox9) And Not (Checkbox10) Then
            Me.TextBox2.Value = .[C2] & .[d4]
    End If
    If Not (Checkbox8) And Checkbox9 And Not (Checkbox10) Then
        Me.TextBox2.Value = .[C2] & .[d2]
    End If
    If Not (Checkbox8) And Not (Checkbox9) And Checkbox10 Then
        Me.TextBox2.Value = .[C2] & .[d3]
    End If
    If Checkbox8 And Checkbox9 And Not (Checkbox10) Then
        Me.TextBox2.Value = .[C2] & .[d2] & .[d4]
    End If
    If Checkbox8 And Not (Checkbox9) And Checkbox10 Then
        Me.TextBox2.Value = .[C2] & .[d4] & .[d3]
    End If
    If Not (Checkbox8) And Checkbox9 And Checkbox10 Then
        Me.TextBox2.Value = .[C2] & .[d2] & .[d3]
    End If
End If
End With
End Sub
 
Re : ligne de code avec if qui ne marche pas

Re,

Plus d'erreur de compilation end if sans bloc if

J'avais oublié de mettre else if.

Cependant, ma sub s'arrête à la 2ème if et ne prend pas en charge les autres elseif.

trop bizarre

A plus
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
58
Affichages
6 K
M
Réponses
26
Affichages
9 K
H
Réponses
19
Affichages
7 K
T
  • Question Question
Réponses
9
Affichages
1 K
B
Réponses
2
Affichages
638
bigs32
B
B
Réponses
3
Affichages
6 K
Retour