Problème avec le If et le Or

Bonjour la famille, j'ai un problème de syntaxe qui doit être lié surement à une manière de résonner en vba. Voici le code si dessous le problème vient de mon "or" je n'arrive pas à l'exprimer correctement en vba.

Je souhaite avoir : (Si ...) ou (Si ...) alors ... sinon .....

Sub test_validation()

    If (IsEmpty(Range("C21")) Or IsEmpty(Range("G21"))) Then
        MsgBox (" non valide")
        End If

    or

    If (IsEmpty(Range("C34"))) Then MsgBox ("non valide")

    End If

    Else: MsgBox (" valide ")

End Sub

Bonjour,

voici la syntaxe si j'ai bien compris votre code :

Sub test_validation()

    If IsEmpty(Range("C34"))   Then
        MsgBox (" non valide")
    elseif IsEmpty(Range("C21")) Or IsEmpty(Range("G21")) then
        MsgBox (" non valide")
    Else: 
         MsgBox (" valide ")
end if
End Sub

Bonjour,

Sub test_validation()
    If IsEmpty(Range("C21")) Or IsEmpty(Range("G21")) Or IsEmpty(Range("C34")) Then
        MsgBox " non valide"
    Else
        MsgBox " valide"
    End If
End Sub

Ne pas abuser des parenthèses !

Et indenter correctement ton code, cela évite de nombreuses erreurs !

Cordialement.

Bonjour MFerrand je crois que tu es passé à coté de mon problème c'est

si blablaS ou si blalaS c'est "non valide" sinon c'est "valide"

blablaS = c'est " Isempty() or is empty ...."

*Et Minance ton code me renvoie "Valide" pour : si j'ai rempli tout les champs des 2 if or il me faut qu'un seul des 2 if

Du tout !

J'ai écrit avec une syntaxe correcte ce que tu as toi-même écrit avec une syntaxe qui ne l'était point !

Ce que Minanse a également fait, à ce détail qu'on peut se dispenser du passage par ElseIf pour fournir un même résultat, le "OU" pouvant être enchaînés au-delà de 2...

Donc reformule tes conditions en langage clair, et on pourra établir le code qui y correspond !

Bonjour.

MFerrand s'est contenté de corriger ton code, il n'est pas passé à côté du problème, c'est toi qui est passé à côté de la question

Concrètement que doit-il se passer si

C21, G21 et C34 sont remplis ?

C21 et G21 ?

C21 et C34 ?

G21 et C34 ?

G21 ?

C21 ?

C34 ?

Rien ?

Bonne journée.

Oké la famille ^^

Si C21 et G21 remplis valide

Si C34 remplis valide

Sinon non valide

If not IsEmpty(Cells(21,3)) and IsEmpty(Cells(21,7)) then
MsgBox "Valide"
Else
If not IsEmpty(Cells(34,3)) then
MsgBox "Valide"
Else
MsgBox "non valide"
End if
End if

ça fonctionne juste il manquait un NOT au Is Empty(Cells(21,7)) mais cool !! merci énormémenr

Juste sans vouloir abuser de ton temps comment je pourrait mettre un Non Valide si la personne remplissait les 3 champs C21 G21 et C34 ? le tout dans la meme structure.

If not IsEmpty(Cells(21,3)) and not IsEmpty(Cells(21,7)) and not IsEmpty(Cells(34,3)) then
MsgBox "faut pas tout remplir !"
Else
If not IsEmpty(Cells(21,3)) and not IsEmpty(Cells(21,7)) then
MsgBox "Valide"
Else
If not IsEmpty(Cells(34,3)) then
MsgBox "Valide"
Else
MsgBox "non valide"
End if
End if
End if

Merci ma poule bonne continuation

Rechercher des sujets similaires à "probleme"