VBA : Envoi d'un mail Outlook personnalisé

winnie100gn Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
winnie100gn Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je souhaite envoyer à chaque correspondants en charge d'un certain nombre de commerciaux
un mail dont le corps du mail apparaisse le titre + Prénom + Nom du commercial. En sachant que chaque correspondant habite dans une ville et a un nombre de commerciaux différents.
Le mail ne se génère que lorsque la colonne Mail = Oui

Exemple du fichier excel



Exemple du texte du mail :

Dans le cas d'un seul commercial
"Bonjour,"
"Comment va votre commercial " saut de ligne
"-" Titre + Prénom + Nom ?"

J'ai réussi à faire un code mais le problème est qu' il me génère autant de mail que de ligne à Oui c'est dire 7 au lieu de 6.
Le problème vient du correspondant C qui habite à Bordeaux qui a 2 commerciaux car le code me génère 2 mails au lieu d'un seul.
Par ailleurs , je voudrais que le texte du Body change en fonction du nombre de commercial

Dans le cas de plusieurs commerciaux.
Bonjour,"
"Comment vont vos commerciaux " saut de ligne
"-" Titre + Prénom + Nom ?"
"-" Titre + Prénom + Nom ?"

Merci d'avance car je n'ai pas un niveau très élevé pour imbriquer autant de conditions.

Configuration: Windows / Chrome

2 réponses

m@rina Messages postés 23882 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Bonjour,

Essaie de faire plutôt une fusion. Je n'ai pas bien compris comment est organisée ta base en ce qui concerne le correspondant à qui tu écris et les noms des commerciaux.

Regarde ici, j'explique le publipostage de ce type :
http://faqword.com/index.php/word/publipostage/416-publipostage-conditionnel-maison

m@rina
0
winnie100gn Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Marina,

Merci pour ton aide , mais je cherche à envoyer un mail via Vba Excel et mon code ci-dessous ne fonctionne pas pour le correspondant C car il émet un mail ligne par ligne alors que je voudrais dans le cas de ce correspondant C qui a 2 commerciaux qu'il me fasse qu'un seul email avec dans le corps du mail l'énumération des 2 commerciaux:

mon code Vba :

Sub EMAIL()

Dim LEMAIL As Variant
Dim ligne As Integer
Dim xSht As Worksheet

Set xSht = Sheets("Feuil1")
Set LEMAIL = CreateObject("Outlook.Application") 'création d'un objet outlouk

For ligne = 3 To 100

If Range("h" & ligne) = "Oui" Then

With LEMAIL.CreateItem(olMailItem) ' informe le programme que nous voulons envoyer un mail.

.Importance = 2 'Message importante haute
.ReadReceiptRequested = True 'Accusé de lecture
.OriginatorDeliveryReportRequested = True 'Accusé de réception

.Subject = "test " 'le sujet
.SentOnBehalfOfName = "adm@gmail.fr" 'la commande SentOnBehalfOfName
permet de prendre le mail générique
.To = Range("G" & ligne) 'placer l'adresse mail du correspondant
.CC = ""
.Body = "Bonjour," & vbCrLf & vbCrLf & "Comment vont vos commerciaux : " & vbCrLf & vbCrLf & Range("b" & ligne) & Range("c" & ligne) & Range("d" & ligne)

.Display 'afficher le mail avant de l'envoyer sinon placer send pour envoyer

SendKeys "^+{END}", True
SendKeys "{END}", True 'envoi le curseur à la fin du texte

End With

End If

Next ligne

End Sub
0