Bonjour,
Je suis actuellement en train de réaliser mon projet de fin d'étude et dans ce cadre je crée un document EXCEL permettant d'automatiser le suivi des commandes de chacun de mes collègues.
J'ai pour le moment réussi à avoir un code VBA fonctionnel pour l'envoi de mail mais je débute en code VBA et je ne parviens pas à automatiser le processus.
Est il possible de faire une récurrence tous les deux jours par exemple. Alors tous les deux jours chacun recevrait un état du nombre de lignes dont la livraison est prévue entre 0:10 jours.
Pour le moment je dois manuellement executer la macro pour que le mail parte (pour le moment display et pas send mais l'idée est la).
Voici le code que j'utilise pour le moment :
Sub EnvoiEmails2()
' Utilise la signature par défaut
Dim dos As String
Dim objOutlook As Object
Dim objMail As Object
Dim i As Long
Dim tbl As Range
Dim nb As Long
Dim mess As String
Dim signature As String
' Tableau contenant les informations client
Set tbl = Range("contacts")
' Nombre de lignes du tableau
nb = tbl.Rows.Count
' Chemin des fichiers à envoyer en pièce jointe
dos = "pièce jointe.doc"
' Création de l'objet Outlook
Set objOutlook = CreateObject("Outlook.Application")
' Boucle sur les clients à qui envoyer une facture
For i = 1 To nb
' Création de l'email
Set objMail = objOutlook.CreateItem(0)
' Afficher l'email pour que la signature automatique soit insérée
objMail.Display
' Récupérer la signature insérée par Outlook (en HTML)
signature = objMail.HTMLBody
' Construire le message personnalisé en HTML
' Construire le message personnalisé en HTML
mess = "<p>Bonjour " & tbl(i, 3) & " vous avez à ce jour " & tbl(i, 6) & " lignes de commandes dont la livraison est dans moins de 10 jours" & ",</p>" & _
"<p>Veuillez trouver ci-joint votre facture.</p>" & _
"<p>Cordialement,</p>"
With objMail
.To = tbl(i, 2) ' Adresse du destinataire
.Subject = "Etat des relances le " & tbl(i, 1) ' Sujet de l'email
' Concaténer le message personnalisé et la signature
.HTMLBody = mess & signature
' Ajout de la pièce jointe
'.Attachments.Add = "pièce jointe.doc"
' Affichage de l'email (remplacez .Display par .Send pour un envoi direct)
.Display
End With
' Libération de l'objet email
Set objMail = Nothing
Next i
' Libération de l'objet Outlook
Set objOutlook = Nothing
End Sub
edit moderation : code mis entre balises </> via le bouton de la barre de menu d'édition de message. merci d'y penser à l'avenir.