Envoi mail fin validité automatiquement

Bonjour le forum,

Je voudrai écrire un code qui me permet d'envoyer des mails automatique a quelques personnes, en les notifications sur la fin de validité de quelques éléments qui se trouvent dans ma BDD. ( l'envoi du mail se fait 2 mois avant la fin de validité)

Les informations sont stockées dans des feuilles Excel comme suit:

J'ai réussi a faire un code qui me permet d'afficher un msg d'alerte a l'ouverture de mon classeur et ca fonctionne bien cependant j'ai ajouté des lignes pour envoyer le mail mais sa fonctionne pas.

Des solutions svp ?

Dim Desti As String, Objet As String, Corps As String, olApp As Object
Sub AlertesDatesFormations()
Dim Sh As Worksheet, Chaine As String, Lig As Integer, Alerte
  Set olApp = CreateObject("Outlook.application")
Lig = 15 ' car les dates de validit? se trouvent en ligne 15
For Each Sh In ActiveWorkbook.Sheets
If Sh.Range("A10") = "Formation interne" Then 'Formation concern?e
Col = 2 ' car la premi?re date de validit? en en colonne B
While Sh.Cells(Lig - 5, Col) <> "" ' on regarde toutes les formations dans la colonne A10 (15-5=10)
If Sh.Cells(Lig, Col) <> "" And Sh.Cells(Lig, Col) < Date + 60 Then ' si formation et date
' on enrichit la chaine avec nom-date-formation
Chaine = Chaine & Sh.Name & vbTab & " Date: " & Sh.Cells(Lig, Col) & " " & Sh.Cells(Lig - 1, Col) & vbCrLf
End If
Col = Col + 1
Wend
If Chaine <> "" Then Chaine = Chaine & vbCrLf
End If
Next Sh
If Chaine <> "" Then
  Alerte = MsgBox(Chaine, , "Alertes sur les dates de validit?formations.")
  Desti = "xxx@ggg"
  Objet = "Fin validit?"
  Corps = "CORPS DU MESSAGE"
  EnvoiMail Desti, Objet, Corps
End If
End Sub

Sub EnvoiMail(Desti As String, Objet As String, Corps As String)
  Dim M As Object
  Set M = olApp.CreateItem(olMailItem)
  With M
    .Subject = Objet
    .Body = Corps
    .Recipients.Add Desti
    .Send
  End With
End Sub

Lignes concernées:

10 et 15

23 et 26

16 et 18

40 et 44

capture

Ca ne fonctionne pas à quel niveau l'envoi de mail?

Essaye .Display a la place de .Send pour voir déjà la tête du mail généré.

Pas sûr que ta variable olApp passe dans ta sous procédure d'envoi de mail.

J'ai remplace .send par .display mais ca fait rien, mon code fonctionne parfaitement jusqu'a

 Alerte = MsgBox(Chaine, , "Alertes sur les dates de validit?formations.")

Mais l'envoi du mail ne passe pas.

ta Msgbox n'attends pas d'action utilisateur.

Tu peux juste mettre

MsgBox(Chaine, , "Alertes sur les dates de validit?formations.")

et retirer Alerte =.

Si le mail ne s'affiche pas avec Display c'est que le code a du s'arrêter à ce niveau donc en corrigeant déjà ça devrait débloquer une partie de soucis

Bonjour, j'ai remplacé la ligne:

'Alerte = MsgBox(Chaine, , "Alertes sur les dates de validit?formations.")

Par:

MsgBox(Chaine, , "Alertes sur les dates de validit?formations.")

J'ai eu un msg d'erreur : "= attendu"

Essaye sans les parenthèses:

MsgBox Chaine, , "Alertes sur les dates de validit?formations."

Ah mnt ca fonctionne merci bcp, cependant je voulais ajouté plusieurs destinataire en modifiant cette ligne :

Desti = "xxx@xxx.com"

par

Desti = "xxx@xxx; bbb@bbb; ccc@ccc"

Pour l'envoyer a 3 personnes au même temps mais ca bloque, comment je dois l'écrire ?

Mercii

A mon avis le soucis n'est pas là.

Il est plus bas

.Recipients.Add Desti

doit être remplacé par

.To Desti

Bonjour,

Meme avec le

.To Desti 

Ca ne fonctionne pas du coup, j'ai rajouté les autres personnes en CC directement:

.cc = "bbb@bbb; ccc@ccc"

Et ca marche

Merci bcp pour ton aide et bonne journée.

Bizarre cette histoire.

Et en retirant les espaces entre après le ; peut etre.

Ca marche quand j'ai retiré le ;

Re,

Je reviens sur ce post, j'ai une question est ce que je peux ajouter des lignes de code qui me permettent d’envoyer le mail automatiquement une fois par semaine ( chaque mardi) ?

Malheuresement c'est compliqué à réaliser parce qu'il faut que le fichier soit ouvert pour que la macro se lance (même automatiquement).

Alors c'est possible mais seulement si tu ouvres le fichier au moins une fois tous les mardis.

Rechercher des sujets similaires à "envoi mail fin validite automatiquement"