Envoi mail par rapport à une date

Bonjour,

Je pensais avoir trouvé le code qui va bien mais hélas, je pense qu'il y a une erreur quelque part.

En effet aujourd’hui (19/12/2021), un mail a été envoyé à un adhérent né un 19/10. Le jour est bon mais pas le mois!

Comment pourrais je rectifier cette erreur???

Merci à vous et bon Dimanche.

Sub envoi()

Dim OutApp As Object
Dim OutMail As Object

If Mid(ThisWorkbook.Sheets("Membres").Range("K4").Value, 1, 5) = Mid(Date, 1, 5) Then
MsgBox ("OK")

End If
derl = Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To derl
If (Mid(ThisWorkbook.Sheets("Membres").Range("K" & i).Value, 1, 4) = Mid(Date, 1, 4)) _
And (ThisWorkbook.Sheets("Membres").Range("U" & i) <> "1") Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next
With OutMail
.To = ThisWorkbook.Sheets("Membres").Range("F" & i).Value
    .Subject = "Joyeux  Anniversaire de la part de L'aéromodèle Club de Xxxxxxxx"
    .Body = "Bonjour, " & ThisWorkbook.Sheets("Membres").Range("B" & i).Value & Chr(13) & _
    "Permettez moi de vous souhaiter un joyeux anniversaire et une excellente journée" & Chr(13) & _
    "de la part de : L'AéroModèle Club de Xxxxxxxx" & Chr$(13) & Chr$(10) & Chr$(13) & Chr$(10) & Chr$(13) & Chr$(10) & Chr$(13) & Chr$(10) & Chr$(13) & Chr$(10) & _
    "[Ce message a été généré automatiquement]"

.Send
End With
Range("U" & i).Value = X
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing

End If

Next i

End Sub

Bonjour,

remplace ton

Mid(ThisWorkbook.Sheets("Membres").Range("K4").Value, 1, 4) = Mid(Date, 1, 4)
par
Mid(ThisWorkbook.Sheets("Membres").Range("K4").Value, 1, 5) = Mid(Date, 1, 5)

Bonjour et merci pour ta proposition mais tu me parles surement de cette ligne là:

(Mid(ThisWorkbook.Sheets("Membres").Range("K" & i).Value, 1, 4) = Mid(Date, 1, 4)) _

Oui, il n'y en a pas d'autres,

mais c'est au pif, n'ayant rien comme autre indication

Ok merci

En ne prenant que lepremier caractère jusqu'au quatrième

tous les membres nés depuis le 19/10 , 19/11 , 19/12 seront pris en compte car la valeur sera 19/1

Bonjour à tous,

Si je puis me permettre, travailler sur des dates avec la fonction MID() comme s'il s'agissait d'un texte

Heu comment dire... vous n'êtes pas sérieux les gars...

On utilise DateDiff() pour ça ou DateSerial()

A+

Bonjour BrunoM45,

Oui peut-être, même surement mais je ne suis pas un pro d'Excel donc voilà quoi!!

Re,

Pas de soucis Bayard
je suis juste étonné que M12 ne te corrige pas sur le sujet

On peut même utiliser un truc tout simple (en formule), si la date est en A1

=SI(ET(JOUR(A1)=JOUR(AUJOURDHUI());MOIS(A1)=MOIS(AUJOURDHUI()));"ANNIVERSAIRE";"")

Ce qui donne en VBA

If Day(Range("A1")) = Day(Date) And Month(Range("A1")) = Month(Date) Then MsgBox "Anniversaire"

A+

Bonjour Bruno

=SI(ET(JOUR(A1)=JOUR(AUJOURDHUI());MOIS(A1)=MOIS(AUJOURDHUI()));"ANNIVERSAIRE";"") dans un code VBA

Bonjour M12

A transposer bien évidemment c'était un exemple pour indiquer les possibilités

Ce qui donne en VBA, comme apparemment tu ne sais pas faire

If Day(Range("A1")) = Day(Date) And Month(Range("A1")) = Month(Date) Then MsgBox "Anniversaire"

Fatigué M12 en ce moment ?

Non, pas fatigué, mais comme le demandeur précise qu'il n'est pas un EXPERT en Excel, ta formule lui serait inutile pour son code

Enfin Bref, je n'épilogue pas

Re,

mais comme le demandeur précise qu'il n'est pas un EXPERT en Excel,

Justement, une colonne supplémentaire dans son tableau avec cette formule,
il n'y a plus qu'à tester si la cellule contient "Anniversaire"

Désolé, je n'étais pas assez explicite, je suis d'accord

Rechercher des sujets similaires à "envoi mail rapport date"