Envoie email via outlook avec condition date

Bonjour à tous,

Je viens vous demander un petit coup de main sur une automatisation Excel que j'essaye - désespérément - de faire.

J'ai un classeur Excel avec une feuille contenant un tableau, permettant de recenser une liste de recommandations. Le but etant de programmer une macro pour qu’à chaque fois qu’une recommandation arrive à échéance, un email automatique via outlook est envoyé au responsable de la recommandation. Mais y’a trop de paramètre à prendre en compte, je suis trop novice en la matière pour faire cette programmation. J'ai essayé de combiner du code sur la feuille avec une Macro d'envoi de mail, mais je m'y perds et surtout je n'arrive pas à faire de l'automatisme de code, c'est-à-dire un code que je n'aurai pas à modifier pour chaque ligne que je veux gérer.

Est-ce que quelqu’un peut m’aider, please, please ?

Voici quelques informations qui pourraient vous aider :

  • La colonne J recense les dates d’échéances pour chaque recommandation (donnée variable)
  • La colonne K recense les adresses email des personnes en charge de la recommandation (donnée variable)
  • La colonne E contient le message que je souhaiterais intégrer dans le corps de l’email (donnée variable)

J’aimerais faire une macro qui recense les conditions suivantes :

  • si la date du jour arrive à 5 jours avant la date d’échéance de la recommandation, alors cela envoie un mail automatique aux personnes responsable mentionnées en colonne K
  • objet de l’email : Recommandation + « contenue de la colonne K »
  • le contenu du mail comprend le message suivant :
« Bonjour, la recommandation « inserer le message en colonne E » arrive à échéance.

Merci de faire le nécessaire avant la date d’echeance.

Cordialement »

- Enfin que la macro fonctionne automatiquement même si le fichier est ferme ( sipossible.

Ci joint fichier

Merci bcp pour votre aide

Bonsoir,

A tester et adapter (je n'ai plus outlook sur mon poste).

Mets les dates au format date !! et non avec des . (points)

Sub envoimail()

Dim messagerie As Object
Dim email As Object
Dim cel As Range
Dim delai As Integer

Set messagerie = CreateObject("Outlook.Application")

delai = 5 'jours

For Each cel In Range("A4:A" & Range("A4").End(xlDown).Row)
    If cel.Offset(, 9).Value - Now < delai Then

        Set email = messagerie.CreateItem(0)

        With email
            .to = cel.Offset(, 10).Value
            .Subject = "mettre ici le titre du mail"
            .body = "Bonjour, la recommandation " & cel.Offset(, 4) & " arrive à échéance." & vbCrLf & "Merci de faire le nécessaire avant la date d’echeance." & vbCrLf & "Cordialement"

            .ReadReceiptRequested = True
            .display ' à remplacer par .send si ok
        End With

        Set email = Nothing

    End If
Next cel

Set messagerie = Nothing

End Sub

Bonsoir

Merci bcp pour ta reponse rapide.

Ca marche

Par contre,quand je remplace ".display" par ".send" comme tu me l'as indiqué

J'ai un message d'erreur 287

Est-ce qu'après le display, si tu cliques dans outlook pour envoyer, as-tu un message quelconque ?

Essaie aussi si tu peux avec un autre poste ...

L'erreur d'exécution 287 peut être liée à des problèmes de registres.

Hello Steelson,

En mode display, Lorsque je clique sur outlook pour envoyer l'email, je n'ai aucun message et l'envoie fonctionne très bien.

En mode send, lorsque je lance la macro avec la touche F8, la macro beug eu niveau de la ligne ".send"

Pour l'instant je ne peux pas tester d'un autre poste car je travaille de chez moi et j'ai qu'un seul PC.

Sub envoimail()

Dim messagerie As Object

Dim email As Object

Dim cel As Range

Dim delai As Integer

Set messagerie = CreateObject("Outlook.Application")

delai = 5 'jours

For Each cel In Range("A4:A" & Range("A4").End(xlDown).Row)

If cel.Offset(, 9).Value - Now < delai Then

Set email = messagerie.CreateItem(0)

With email

.to = cel.Offset(, 10).Value

.Subject = "mettre ici le titre du mail"

.body = "Bonjour, la recommandation " & cel.Offset(, 4) & " arrive à échéance." & vbCrLf & "Merci de faire le nécessaire avant la date d’echeance." & vbCrLf & "Cordialement"

.ReadReceiptRequested = True

.send ' LA MACRO BEUG A CETTE LIGNE

End With

Set email = Nothing

End If

Next cel

Merci pour ta promptitude

Set messagerie = Nothing

End Sub

Merci encore pour ta promptitude.

Hello

Je me permet de relancer le sujet.

QQui peut m'aider à résoudre ce problème ?

Ya un problème au niveau de l envoi.

Merci

Rechercher des sujets similaires à "envoie email via outlook condition date"