Famille de logiciels de traitement de texte Microsoft pour la création de documents web, d’e-mails et d’impressions.
Bonjour Marine,
Je te répond ici. Je te propose cette macro :
(je ne l'ai pas trop testé, elle risque d'être lente s'il y a plusieurs centaines de destinataires)
Sub Emailling_CC()
' Objectif : Générer un publipostage sous forme d'e-mail avec un destinataire en CC.
' Utilisation : A partir du document principal de fusion (celui avec les champs de fusion),
' lancer la macro **en ayant au préalable mis à jour les constantes du début du code.**
**' Choisir soit Display ou Send en bas du code (ajouter ou supprimer l'apostrophe).**
' Auteur : Arnaud ([www.1forme.fr](https://www.1forme.fr "www.1forme.fr"))
' Licence : CC-BY-NC-SA (Vous pouvez diffuser/partager/modifier cette macro dans les même conditions,
' seulement à titre personnel et citant l'auteur/site d'origine.
' Constantes à mettre à jour !
' ============================
' Modifier les valeurs à droite de l'égale (=), conserver les guillemets
Const strChampMail\_To As String = **"A"** ' Champ donnant le nom du destinataire
Const strChampMail\_CC As String = **"CC"** ' Champ donnant le nom du destinataire en copie ("" si non utilisée)
Const strObjetMail As String = **"Invitation"** ' Objet du mail
Const strImportant As String = **"Non"** ' Marquer comme important (Oui ou Non)
Const strAccReception As String = **"Non"** ' Demander un accusé de réception (Oui ou Non)
' Variables (ne pas modifier)
Dim objMailMerge As MailMerge
Dim i As Integer
Dim intNbEnrg As Integer
Dim strMail\_To As String
Dim strMail\_CC As String
Dim OutApp As Object
Dim OutMail As Object
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set OutApp = CreateObject("Outlook.Application")
End If
On Error GoTo fin
Set objMailMerge = ActiveDocument.MailMerge
intNbEnrg = objMailMerge.DataSource.RecordCount
For i = 0 To intNbEnrg - 1
With objMailMerge
.DataSource.FirstRecord = i + 1
.DataSource.LastRecord = i + 1
.Destination = wdSendToNewDocument
.DataSource.ActiveRecord = i + 1
strMail\_To = .DataSource.DataFields(strChampMail\_To)
If strChampMail\_CC <> "" Then strMail\_CC = .DataSource.DataFields(strChampMail\_CC)
.Execute
End With
ActiveDocument.Content.Copy Set OutMail = OutApp.CreateItem(0) ' olMailItem (Nom cst non interprétable)
With OutMail
.Subject = strObjetMail
.To = strMail\_To
.CC = strMail\_CC
Set objEdit = .GetInspector.WordEditor
objEdit.Content.Paste
.Importance = IIf(strImportant = "Oui", 2, 1) ' 2= olImportanceHigh, 1= olImportanceNormal
.OriginatorDeliveryReportRequested = (strAccReception = "Oui")
' A paramétrer !
' ==============
**.Display ' Afficher l'e-mail (Commenter cette ligne pour un envoie automatique)**
**'.Send ' Envoyer l'e-mail (Décommenter cette ligne pour un envoie automatique)**
End With
ActiveDocument.Close savechanges:=False
Next
fin:
Set objEdit = Nothing
Set OutMail = Nothing
Set OutApp = Nothing
Set objMailMerge = Nothing
End Sub
Bon week-end