Bonjour tout le monde,
Dans le cadre de mon travail, je désire faire une macro pour envoyer des mails indiquant à différentes personnes qu'ils ont des documents à aller signer.
L'idée est d'envoyer un mail unique regroupant tous les noms de docs + liens vers les documents à la personne en question puis de passer à la suivante et ainsi de suite jusqu'à la dernière ligne du tableau.
Pour grouper les mails, j'ai pensé à une boucle while mais je ne sais pas comment indiquer de passer à la personne suivante ... J'ai tenté différentes boucles mais sans succè : si vous pouviez m'aider svp.
Je vous joins le tableur, ça regroupe bien les 4 docs + lien à "User 1" mais je n'ai pas réussi à agrandir la boucle aux autres users du tableau ...
J'espère avoir été clair sur mon problème, sinon n'hésitez pas à me le signaler. Je vous mets le code ci-dessous :
Merci d'avance.
Cordialement.
Dans le cadre de mon travail, je désire faire une macro pour envoyer des mails indiquant à différentes personnes qu'ils ont des documents à aller signer.
L'idée est d'envoyer un mail unique regroupant tous les noms de docs + liens vers les documents à la personne en question puis de passer à la suivante et ainsi de suite jusqu'à la dernière ligne du tableau.
Pour grouper les mails, j'ai pensé à une boucle while mais je ne sais pas comment indiquer de passer à la personne suivante ... J'ai tenté différentes boucles mais sans succè : si vous pouviez m'aider svp.
Je vous joins le tableur, ça regroupe bien les 4 docs + lien à "User 1" mais je n'ai pas réussi à agrandir la boucle aux autres users du tableau ...
J'espère avoir été clair sur mon problème, sinon n'hésitez pas à me le signaler. Je vous mets le code ci-dessous :
VB:
Sub Envoi_mail_ter() 'début du programme
Dim OutApp As Object 'Déclaration de l'application objet Outlook
Dim OutMail As Object 'Déclaration du mail objet Outlook
Dim ligne As Integer
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Dim i As Long
Dim j As Long
Dim adresse As String
Dim corpsmail As String
Dim Lien_Hyper As Variant
With OutMail 'début de la boucle
i = 2
adresse = Worksheets("Données PW").Range("c" & i)
While Worksheets("Données PW").Range("c" & i) = adresse
Lien_Hyper = Worksheets("Données PW").Range("j" & i)
corpsmail = corpsmail & "<p>" & "Vous avez un document dont la livraison est prévue pour le " & Worksheets("Données PW").Range("d" & i) & "<p>" & Worksheets("Données PW").Range("a" & i) & "<p>" & "<a href = '" & Lien_Hyper & "'>Lien_PW</a>"
i = i + 1
.To = adresse 'champ envoyer à
'ne pas oublier les "" lorsque le texte est écrit 'en dur'
'séparer les adresses mail par un ;
.CC = "doc.user@g.com" 'champ mail en copie
.BCC = "" 'champ mail en copie caché
.Subject = Worksheets("Mail").Range("B3") 'champ du sujet du mail
.htmlbody = "Bonjour, " & "<p>" & corpsmail & "<p>" & "<p>" & "Cordialement ," & "<p>" & "<p>" & "L'équipe Doc Control"
'champ du corps du mail
' ajouter & vbCrlF & pour aller à la ligne entre deux valeurs
.Display ligne 'affiche le mail en brouillon dans Outlook, pratique
'pour vérifier avant d'envoyer
'.Send 'envoie directement le mail
'.Save 'sauvegarde le mail
Wend
End With 'fin de la boucle
Set OutMail = Nothing 'nettoie la mémoire en nettoyant les variables
Set OutApp = Nothing 'nettoie la mémoire en nettoyant les variables
End Sub 'fin du programme
Merci d'avance.
Cordialement.