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