Envoyer email à une date

Bonsoir à tous

J'ai un problème que j'essaye de résoudre.

J'ai un fichier Excel pour la gestion des contrats de travail en CDD.

Il y'a dans une colonne une date de fin de contrat très importante.

J'aurai souhaité créer un code VBA qui me renvoie grâce à une alerte, un mail pour me prévenir de la fin de contrat lorsque la date de fin contrat est prévue dans 30 jours avant l'échéance.

J'ai déjà fait les mises en forme conditionnelle pour spécifier chacun des cas mais j'aurai vraiment besoin de créer des alertes emails.

En pièce jointe, un fichier exemple.

Merci d'avance.

28alerte-mail.xlsx (10.61 Ko)

Bonjour

essaie ceci

Private Sub Workbook_Open()
Dim texte As String
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(i, "C").Value < Date - 20 Then
        texte = Cells(i, "A").Value & " - fin de cointrat le : " & Cells(i, "C")
        envoyermail "moi@fai.fr", "Alerte fin de CDD", texte
    End If
Next
End Sub
Sub envoyermail(adressemail As String, quoi As String, texte As String)

Dim messagerie As Object
Dim email As Object
Set messagerie = CreateObject("Outlook.Application")
Set email = messagerie.CreateItem(0)

    With email
        .to = adressemail
        .Subject = quoi
        .body = texte
        .ReadReceiptRequested = True
        .display ' à remplacer par .send si ok
    End With

Set email = Nothing
Set messagerie = Nothing

End Sub

je n'ai pas pu tester car je ne travaille plus avec outlook

23alerte-mail.xlsm (17.05 Ko)

Bonjour Steelson

De prime abord, merci pour cette solution si rapide.

Je viens de tester le code qui marche déjà assez bien malgré quelques préoccupations .

En modifiant l'adresse du destinataire par ma propre adresse, et modifiant aussi .display par .send je reçois deux messages :

  • "un programme tente d'envoyer..........................." (Réf Capture1 en pièce jointe)
  • "Le destinataire a demandé une confirmation de lecture...." (Réf Capture 2 en pièce jointe)

Pour le premier message, lorsque je clique sur "oui" , le mail est envoyé.Déjà selon notre exemple, je reçois seulement 2 alertes pour les deux premiers contrats, au lieu d'avoir 7 messages selon notre fichier source.

Pour une solution louable, j'aimerais savoir si on peut écrire une procédure qui renvois les alertes sans toutefois ouvrir le fichier Excel, c'est à dire lorsque Fin Contrat -20 <=Aujourdhui.

Merci beaucoup pour cette précieuse édification déjà.

capture1 capture2

Bonjour,

Commence par supprimer :

.ReadReceiptRequested = True

Et teste de nouveau.

Cdlt.

Bonjour,

En effet, comme dit Jean-Eric, supprime la ligne que tu as parce que tu as reçu ton propre message (et dans ce cas cela n'a aucun intérêt).

Pour le second, il faut aller dans les paramètres de sécurité d'outlook pour autoriser une autre programme (excel) à accéder et actionner ta messagerie.

Bonjour,

tu seras obligé d'ouvrir le fichier pour que le mail parte.

Dans ces condition une boite d'alerte devrait faire l'affaire non ?

Ou bien tu te fais des rappels dans outlook.

eric

Rechercher des sujets similaires à "envoyer email date"