Corps de mail en gras et en couleur
Bonjour à tous,
J'ai besoin d'envoyer un mail automatique, cependant dans mon corps de mail (.Body) je souhaiterais qu'une partie soit en gras et en orange.
J'ai trouvé sur internet qu'il faudrait utiliser du HTML en utilisant <br>, mais dans mon cas je ne vois pas comment faire...
Voici le début de mon code :
.Body = "Bonjour " & Prénom(j) & "," & vbNewLine & vbNewLine & _
"Selon Mr, vous avez au " & DateDuJour & ", " & FL.Cells(i, 2).Value & "
"un solde restant de" & "." & vbNewLine & vbNewLine & _
"Cordialement," & vbNewLine & vbNewLine & _
'mettre en orange gras : "vous avez jusqu'au 21/05 pour régulariser cela"
"Signature"
La phrase a mettre en gras et en orange est la suivante : "Vous avez jusqu'au 21/05 pour régulariser cela"
Si quelqu'un sait comment faire je vous en serez reconnaissant.
Cordialement
Bonjour,
Il faut utiliser la méthode .HTMLBody et coder en HTML avec les balises adéquates :
HTMLBody = "Bonjour " & Prénom(j) & "," & vbNewLine & vbNewLine & _
"Selon Mr, vous avez au " & DateDuJour & ", " & FL.Cells(i, 2).Value & "
"un solde restant de" & "." & vbNewLine & vbNewLine & _
"Cordialement," & vbNewLine & vbNewLine & _
""<font color=""orange""> <b>vous avez jusqu'au 21/05 pour régulariser cela"</b></font>"
Cdlt,
Bonjour,
il me semble avoir mis un double guillemet de trop en début de balise et un à la fin. Exemple :
.HTMLBody = "Bonjour " & _
"<font color=""orange""><b>vous avez jusqu'au 21/05 pour régulariser cela</b></font>"
Cdlt,
Bonjour,
J'ai du reprendre et nettoyer une bonne partie de votre code pour m'y retrouver sur la base de vos fichiers car de mauvaises déclarations provoquaient des erreurs multiples :
Sub solderestant()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim nom(1 To 2000) As String
Dim Mail(1 To 2000) As String
Dim Prénom(1 To 2000) As String
Dim i%, j%
Dim DateDuJour As Date
Dim OutApp As Object
Dim OutMail As Object
With Workbooks("fichier1.xlsm").Worksheets("Destinataires")
Application.ScreenUpdating = False
DateDuJour = .Range("H3").Value
For i = 4 To 2000
nom(i - 3) = .Cells(i, 3)
Mail(i - 3) = .Cells(i, 4)
Prénom(i - 3) = .Cells(i, 5)
If .Cells(i, 3) = "" Then
Exit For
End If
Next i
End With
With Workbooks("fichier2.xlsx").Worksheets("Feuil1")
For i = 2 To 2000
If .Cells(i, 1) = "" Then
Exit For
End If
For j = 1 To 2000
If .Cells(i, 1) = nom(j) & " " & Prénom(j) Then
.Cells(i, 3).Value = "Mail envoyé"
.Cells(i, 3).Font.Color = 1
.Cells(i, 3).Interior.ColorIndex = 10
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
'.To = Mail(j)
.Subject = "Solde restant"
.HTMLBody = "Bonjour " & Prénom(j) & ", <br><br>" & _
"Selon Mr, vous avez au " & DateDuJour & ", " & " un solde restant de " & Worksheets("Feuil1").Cells(i, 2).Value & "€. <br> <br>" & _
"Cordialement, <br> <br>" & "Signature <br> <br>" & _
"<font color=""orange""><b>Cous avez jusqu'au 21/05 pour régulariser cela</b></font>"
.Importance = olImportanceHigh 'importance haute
'.DeferredDeliveryTime 'définit la date et l'heure aux quelles le message électronique doit être remis
.Display 'Affiche le mail sans l'envoyer sinon .send
End With
Set OutMail = Nothing
Exit For
End If
If nom(j) = "" Then
.Cells(i, 3).Cells(i, 3).Value = "Pas de correspondance"
.Cells(i, 3).Cells(i, 3).Activate
.Cells(i, 3).Font.Color = 1
.Cells(i, 3).Interior.ColorIndex = 3
Exit For
End If
Next j
Next i
End With
End Sub
Le code est largement optimisable mais ce n'est pas l'objet de ce topic.
Cdlt,
Ergotamine,
Je vous remercie infiniment!
J'ai intervertis les deux dernières ligne du .HTMLBody et tout fonctionne!
Je vous remercie encore :)
Cordialement