Bonjour à tous,
J’ai trouvé et exploité ce bout de code permettant l’envoi par publipostage de mails et pièces-jointes personnalisés.
Il fait le job parfaitement.
Là ou je bloque est que j’aimerais pouvoir faire en sorte que le message reçu par les destinataires (issu de la colonne E) s’affiche en gras et en rouge (en html peut-être ??) dans leur messagerie.
Je n'y connais rien en VBA mais cela est-il intégrable dans mon code ?
Merci pour l'aide que vous voudrez bien m'apportez.
VB:
Sub Envoi_mails()
Dim sh As Worksheet
' Définir la feuille ou se trouve les données
Set sh = ThisWorkbook.Sheets("MA_BDD")
Dim i As Integer
Dim OA As Object
Dim msg As Object
' Créer une instance OUTLOOK
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
' Pas d'envoi si NON est sélectionné
For i = 2 To last_row
If sh.Range("H" & i).Value <> "Non" Then
Set msg = OA.CreateItem(0)
' Les COLONNES que l'on récupère pour l'envoi du message
msg.To = sh.Range("A" & i).Value
msg.CC = sh.Range("B" & i).Value
msg.BCC = sh.Range("C" & i).Value
msg.Subject = sh.Range("D" & i).Value
msg.Body = sh.Range("E" & i).Value
' Insertion PJ(1)
If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
' Insertion PJ(2)
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
msg.Send
' Confirmation de message envoyé
sh.Range("I" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"
End Sub
Bonjour le fil et le forum,
il faut utiliser les balises html, voici un exemple où l'on peut changer le type de police, la couleur et la taille.
VB:
Sub Envoi_mails2()
'https://excel-downloads.com/threads/publipostage-mise-en-forme-du-corps-de-m-issu-dune-cellule-excel-vba.20084607/
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("MA_BDD")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Dim strHTML As String
' Créer une instance OUTLOOK
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
' Pas d'envoi si NON est sélectionné
For i = 2 To last_row
If sh.Range("H" & i).Value <> "Non" Then
Set...
Bonjour le fil et le forum,
il faut utiliser les balises html, voici un exemple où l'on peut changer le type de police, la couleur et la taille.
VB:
Sub Envoi_mails2()
'https://excel-downloads.com/threads/publipostage-mise-en-forme-du-corps-de-m-issu-dune-cellule-excel-vba.20084607/
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("MA_BDD")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Dim strHTML As String
' Créer une instance OUTLOOK
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
' Pas d'envoi si NON est sélectionné
For i = 2 To last_row
If sh.Range("H" & i).Value <> "Non" Then
Set msg = OA.CreateItem(0)
' Balises HTML
strHTML = "<html><body>"
strHTML = strHTML & "<p style='font-family:Arial; font-size:14px; color:#0000FF;'>" & sh.Range("E" & i).Value & "</p>"
strHTML = strHTML & "</body></html>"
' Les COLONNES que l'on récupère pour l'envoi du message
With msg
.To = sh.Range("A" & i).Value
.CC = sh.Range("B" & i).Value
.BCC = sh.Range("C" & i).Value
.Subject = sh.Range("D" & i).Value
.HTMLBody = strHTML
End With
' Insertion PJ(1)
If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
' Insertion PJ(2)
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
msg.Send
' Confirmation de message envoyé
sh.Range("I" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"
End Sub
Bonjour le fil et le forum,
il faut utiliser les balises html, voici un exemple où l'on peut changer le type de police, la couleur et la taille.
VB:
Sub Envoi_mails2()
'https://excel-downloads.com/threads/publipostage-mise-en-forme-du-corps-de-m-issu-dune-cellule-excel-vba.20084607/
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("MA_BDD")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Dim strHTML As String
' Créer une instance OUTLOOK
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
' Pas d'envoi si NON est sélectionné
For i = 2 To last_row
If sh.Range("H" & i).Value <> "Non" Then
Set msg = OA.CreateItem(0)
' Balises HTML
strHTML = "<html><body>"
strHTML = strHTML & "<p style='font-family:Arial; font-size:14px; color:#0000FF;'>" & sh.Range("E" & i).Value & "</p>"
strHTML = strHTML & "</body></html>"
' Les COLONNES que l'on récupère pour l'envoi du message
With msg
.To = sh.Range("A" & i).Value
.CC = sh.Range("B" & i).Value
.BCC = sh.Range("C" & i).Value
.Subject = sh.Range("D" & i).Value
.HTMLBody = strHTML
End With
' Insertion PJ(1)
If sh.Range("F" & i).Value <> "" Then
msg.Attachments.Add sh.Range("F" & i).Value
End If
' Insertion PJ(2)
If sh.Range("G" & i).Value <> "" Then
msg.Attachments.Add sh.Range("G" & i).Value
End If
msg.Send
' Confirmation de message envoyé
sh.Range("I" & i).Value = "Envoyé"
End If
Next i
MsgBox "Messages Envoyés"
End Sub