Voilà mon "problème", en fait je voudrais créer un fichier excel comprenant, entre autres, une colonne avec des dates et une autre colonne avec des adresses mail, jusque là ça va lol, puis créer une macro qui, un peu avant la date (5 jours avant par exemple, ou plus tôt), envoie un mail à l'adresse e-mail correspondante.
J'ai essayé le code ci-dessous, mais il ne semble pas fonctionner :
- Code: Tout sélectionner
Public Sub SendNotesMail()
Dim Maildb As Object 'La base des mails
Dim UserName As String 'Le nom d'utilisateur
Dim MailDbName As String 'Le nom de la base des mails
Dim MailDoc As Object 'Le mail
Dim AttachME As Object 'L'objet pièce jointe en RTF
Dim Session As Object 'La session Notes
Dim EmbedObj As Object 'L'objet incorporé
Dim destinataire As Variant
Dim sSujet, sBody, sAdresseMail, sAdresseRetour As String
Dim duree As Integer
Dim Lig_Deb, Lig_Fin As Integer 'ligne de début, de fin
Dim sDates_Col As String 'colonnes qui contiennent les dates à tester et les adresses mail
Dim i As Integer
'Crée une session notes
Set Session = CreateObject("Notes.NotesSession")
'initialisation des constantes de la macro :
Lig_Deb = 2 'dans ma feuille Excel, les dates à tester commencent en ligne 2
sDates_Col = "C" ' et elles sont en colonne C ( 3 ième colonne)
'Ligne de fin =1ère cellule vide dans la colonne des dates
Lig_Fin = Val(Range(sDates_Col & CStr(Lig_Deb)).End(xlDown).Row)
'Récupère le nom d'utilisateur et crée le nom de la base des mails
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
'Ouvre la base des mails
Set Maildb = Session.GETDATABASE("", MailDbName)
If Not Maildb.IsOpen Then Maildb.OPENMAIL
' boucle de test dans la plage des dates (=> )
For i = Lig_Deb To Lig_Fin
Range(sDates_Col & CStr(i)).Select 'activer la cellule testée
duree = Now - ActiveCell.Value ' la date est dans la cellule active
If duree < 5 Then 'echeance est dans 5 jours
destinataire = "email"
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = destinataire
MailDoc.Subject = "Echéance "
MailDoc.Body = "Ne pas oublier de faire ...."
MailDoc.SAVEMESSAGEONSEND = SaveIt
MailDoc.PostedDate = Now()
MailDoc.SEND 0, Recipient
End If
Next i
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Sub
Quelqu'un saurait-il m'aider ?
Si quelqu'un a une autre solution qui ne passerait ni par excel ni par outlook, je prends également.