VBA condition IF

Bonjour,

j'aimerais mettre la condition suivante dans mon programme :

If Range("D7") = "Filtre 1" And Range(D30).Value < 10 Then

Range(D31) = "Respecté"

Else: Range(31) = "Non Respecté"

End If

et cela m'affiche un bug et je ne comprend pas pourquoi cela ne fonctionne pas.

Pourriez vous m'aider svp ?

Merci d'avance

Bonsoir Pati, le forum,

If Range("D7") = "Filtre 1" And Range("D30").Value < 10 Then
  Range("D31") = "Respecté"
 Else
  Range("D31") = "Non Respecté"
 End If

Tu peux simplifier ainsi:

Range("D31") = IIf(Range("D7") = "Filtre 1" And Range("D30").Value < 10, "Respecté", "Non Respecté")

Cordialement,

Bonjour,

Attention à bien mettre les " " autour du nom des cases. Comme cela, ça devrait marcher :

Sub test()

If Range("D7") = "Filtre 1" And Range("D30").Value < 10 Then
Range("D31") = "Respecté"
Else: Range("D31") = "Non Respecté"
End If

End Sub

Bonne soirée!

Cindy

Bonsoir Pati, le forum,

If Range("D7") = "Filtre 1" And Range("D30").Value < 10 Then
  Range("D31") = "Respecté"
 Else
  Range("D31") = "Non Respecté"
 End If

Tu peux simplifier ainsi:

Range("D31") = IIf(Range("D7") = "Filtre 1" And Range("D30").Value < 10, "Respecté", "Non Respecté")

Cordialement,

Merci du conseil.

En voulant l'améliorer j'ai voulu mettre une condition OR :

Range("D31") = IIf(Range("D7") = ["0 DVNd 304 FI TR2" OR "0 DVNd 304 FI TR3" OR "0 DVNd 304 FI TR4"] And Range("D30").Value < 10, "Respecté", "Non Respecté")

Mais cela me met un bug. Ce n'est pas comme cela qu'on utilse cette condition?

Re,

Peut-être ainsi:

Range("D31") = IIf((Range("D7") = "0 DVNd 304 FI TR2" Or Range("D7") = "0 DVNd 304 FI TR3" Or Range("D7") = "0 DVNd 304 FI TR4") And Range("D30").Value < 10, "Respecté", "Non Respecté")

Il s'agit en fait de la fonction SI...

D31 =Si( conditions, valeur si vrai, valeur si faux)

Autre possibilité si tu as beaucoup de conditions pour D7:

 Dim v
     v = Array("0 DVNd 304 FI TR2", "0 DVNd 304 FI TR3", "0 DVNd 304 FI TR4") 'tes conditions pour D7
  Range("D31") = IIf((Not IsError(Application.Match(Range("D7"), v, 0))) And Range("D30").Value < 10, "Respecté", "Non Respecté")

Cordialement,

Rechercher des sujets similaires à "vba condition"