Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Contenu mail dans des cellules, changer couleur

Devery

XLDnaute Nouveau
Bonjour,

Après avoir regarder les différents sujets sur mon problème ( https://www.excel-downloads.com/thr...s-une-partie-du-corps-dun-mail-en-vba.221809/ et https://www.excel-downloads.com/thr...avec-le-contenu-de-certaines-cellules.227285/ ) je n'arrive pas à trouver une façon d'adapter cela à mon problème.

J'envois des mails automatiquement, et je souhaite mettre en couleur et en gras certaines parties. Le problème est que tout le contenu des mails provient d'informations extraites de cellules et non de ma macro. J'ai un texte dans une colonne contenant le mail entier (date, formule...) et je n'arrive pas à adapter mon programme (avec des balises et en HTML de ce que j'ai compris?) pour changer le format de mon mail.

Voici le Sub contenant le contenu du mail :

Sub SendFollowUpMail(zSheet As Excel.Worksheet, zRow As Long)
Const cColMailList = 19
Const cColMailBody = 20
Const cSep = vbLf
Const cMailItem = 0
Dim oOL As Object
Dim oMail As Object
Dim oCell As Excel.Range

Dim sRecipients As String
Dim aRecipients() As String
Dim sBody As String
Dim i As Integer

'on récupère sur la ligne sélectionnée les données pour l'envoi
Set oCell = zSheet.Cells(zRow, cColMailList)
sRecipients = oCell.Value
Set oCell = zSheet.Cells(zRow, cColMailBody)
sBody = oCell.Value

'On s'assure que les données soient disponibles
If Len(sRecipients) > 0 And Len(sBody) > 0 Then
On Error GoTo ErrorHandling
' Set oOL = GetObject(, "Outlook.Application")
Set oOL = CreateObject("Outlook.Application")
Set oMail = oOL.CreateItem(cMailItem)
With oMail
'On ajoute autant de destinataires que nécessaire
aRecipients() = Split(Replace(sRecipients, cSep, ";"), ";")
For i = 0 To UBound(aRecipients)
.Recipients.Add aRecipients(i)
Next
.Subject = cSubject
.Body = sBody
.Send
End With
'On indique que le mail a été envoyé
Set oCell = zSheet.Cells(zRow, cColMailEnvoi)
oCell.Value = "Oui"
oCell.Font.Bold = True
End If
GoTo Cleaning
ErrorHandling:
Dim sMess As String
sMess = "Erreur " & Err.Number & vbCrLf & vbCrLf _
& Err.Description & vbCrLf & vbCrLf _
& "Veuillez vérifier les adresses mails!"

MsgBox sMess, vbCritical, "ERREUR MAIL"
If Not oMail Is Nothing Then
oMail.Display
End If
Cleaning:
'On fait le ménage
Set oCell = Nothing
Set oOL = Nothing
Set oMail = Nothing

End Sub


Faut-il que je mette des balises lors de la définition du contenu de mon mail ?

Set oCell = zSheet.Cells(zRow, cColMailBody)
sBody = oCell.Value

J'ai essayé de le mettre lorsque j'utilise la variable Body, mais sans succès...

.Body = sBody

Auriez-vous des pistes ?

Devery
 

Discussions similaires

Réponses
7
Affichages
591
Réponses
2
Affichages
657
Réponses
6
Affichages
613
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…