Problème fonction AND

Bonjour je souhaiterais faire une fonction assez simple pour un envoie de mail automatique si les deux conditions sont remplis, c'est à dire qu'une cse et la mention "A faire" et que la date dans l'autre case soit <= a la date du jour - 1 mois.

Quand je test les conditions séparement, ça fonctionne mais des que je mets la fonction and, rien ne se passe

une idée ?

Sub CFPautomation()

datejour = Date

colonne = 5

Dim lemail As Variant

Dim outlook1 As Object
Dim mail1 As Object

Set outlook1 = CreateObject("Outlook.Application")
Set lemail = outlook1.CreateItem(0)

For ligne = 5 To 10

DATECFP = Cells(ligne, 6)
dateafaire = DateAdd("m", "-1", datejour)
STDAV = Cells(ligne, 2)




If CDate(DATECFP) <= CDate(dateafaire) And STDAV = "A faire" Then

With lemail
.Subject = Worksheets("SUIVI CFP").Range("S5")
.To = Cells(ligne, 4) 'ligne M
.Body = Worksheets("BRUTDATA").Range("D3")
.Display
End With

End If

Next

Bonjour,

Pour vous aider, un exemple minimal reproduisant votre problème dans un fichier joint serait utile.

A vous lire,

Voici mon fichier si cela peut paraitre plus claire ?

Salut,

Y'a déjà une erreur sur cette ligne dateafaire = DateAdd("m", "-1", datejour) en deuxième variable c'est un double qui est attendu et non pas un string

image

Bonjour,

Le programme semble "s’accommoder" de l'erreur de type (string au lieu de double) signalée par Jean-Paul, mais mieux vaut la corriger.

Concernant votre test, il me semble tout simplement que la condition est mal écrite. Dans l'exemple fourni :

  • DATECFP = 01/03/22 et dateafaire = 21/01/22 donc le test "DATECFP <= dateafaire" est bien faux.

Si j'essaie de comprendre la logique, vous recherchez plutôt à envoyer un courriel lorsque DATECFP - DateDuJour <= 1 mois, non ?

Dans ce cas, la condition pourrait s'écrire de cette manière :

DateDiff("m", datejour, datecfp) <= 1

Est-ce que cela répond à votre demande ?

Rechercher des sujets similaires à "probleme fonction"