Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formater du texte lors d'un envoi d'un mail

11 réponses
Avatar
Fredo(67)
Bonjour,

J'utilise une macro (qui marche très bien) pour envoyer des mail en prenant en compte des informations contenues dans des cellules excel.

Le mail ainsi créé comporte du texte.
Pensez-vous qu'il serait possible de formater ce texte.
J'ai essayé plusieurs syntaxes que je connais, mais elles "coupent" mon code...

Voici un extrait du code
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint les consignes pour la mise en route de l'alarme du chantier : " & Range("f9") & " situé " & Range("f11") & " - " & Range("f14") & " " & Range("f13") _
& vbNewLine & vbNewLine & _
"Installation de la grue :" & _
vbNewLine & vbNewLine & _
"Installation de la base vie : " & _

Imaginons que je souhaite mettre en gras le mot consigne...

10 réponses

1 2
Avatar
MichD
Le 07/12/21 Í  03:53, Fredo(67) a écrit :
Bonjour,
J'utilise une macro (qui marche très bien) pour envoyer des mail en prenant en compte des informations contenues dans des cellules excel.
Le mail ainsi créé comporte du texte.
Pensez-vous qu'il serait possible de formater ce texte.
J'ai essayé plusieurs syntaxes que je connais, mais elles "coupent" mon code...
Voici un extrait du code
xMailBody = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint les consignes pour la mise en route de l'alarme du chantier : " & Range("f9") & " situé " & Range("f11") & " - " & Range("f14") & " " & Range("f13") _
& vbNewLine & vbNewLine & _
"Installation de la grue :" & _
vbNewLine & vbNewLine & _
"Installation de la base vie : " & _
Imaginons que je souhaite mettre en gras le mot consigne...

Bonjour,
Tu as tout ce qu'il faut pour faire ce que tu désires ici :
https://www.extendoffice.com/documents/excel/5029-excel-send-html-email.html
Si tu utilises la procédure proposée, tu devras ajouter la référence
suivante dans la fenêtre VBA / barre de menu / outils / références /
Í  cocher : "Microsoft Outlook 16.0 Object Library"
MichD
Avatar
MichD
J'ai recréé l'exemple de la procédure ici.
Dans la procédure, le courriel est envoyé par Microsoft Outlook.
Attention aux coupures de textes inopportuns de la messagerie
'----------------------------------------------
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = ""
.Subject = "Test"
.HTMLBody = "<HTML><BODY><span style=""color:#80BFFF"">Font
Color</span style=""color:#80BFFF"">" & _
"<br>the <b>bold text</b> here.</br> <br><u>New
line with underline</u></br><br><p" & _
"style='font-family:calibri;font-size:25'>Font
size</br></p></BODY></HTML>"
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'----------------------------------------------
MichD
Avatar
MichD
Ce que tu veux faire avec ton message va comme ça.
Tu ajoutes le reste du texte que tu veux Í  la suite pour l'item HTMLBody
'--------------------------------------------------------
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
.HTMLBody = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint les <b>consignes</b>" & _
" pour la mise en route de l'alarme du chantier : "
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
MichD
Avatar
Fredo(67)
Le mardi 7 décembre 2021 Í  13:34:58 UTC+1, MichD a écrit :
Ce que tu veux faire avec ton message va comme ça.
Tu ajoutes le reste du texte que tu veux Í  la suite pour l'item HTMLBody
'--------------------------------------------------------
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
.HTMLBody = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint les <b>consignes</b>" & _
" pour la mise en route de l'alarme du chantier : "
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
MichD

Bon ben en fait je n'ai qu'un seul mot : MERCI
(je n'arrive pas Í  l'écrire en plus gros, et la balise <b> ne passe pas, lol)
Avatar
MichD
(je n'arrive pas Í  l'écrire en plus gros, et la balise <b> ne passe pas, lol)

Essaie comme ceci. Modifie la grosseur de la police 5.5 selon ce que tu
veux!
'----------------------------------
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
.HTMLBody = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint les " & _
"<FONT SIZE = 5.5><b>consignes</b></br>" & _
"<FONT SIZE = 3.5> pour la mise en route de l'alarme du
chantier :"
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'----------------------------------
MichD
Avatar
MichD
Le 07/12/21 Í  09:15, MichD a écrit :
(je n'arrive pas Í  l'écrire en plus gros, et la balise <b> ne passe
pas, lol)


La touche finale pour insérer "Bonjour" et le reste du texte sur une
nouvelle ligne.
'---------------------------------------
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
Message = "Bonjour," & vbNewLine & vbNewLine & _
"Vous trouverez ci-joint les"
'.HTMLBody = Message ' " & _
"<FONT SIZE = 5.5><b>consignes</b></br>" & _
"<FONT SIZE = 3.5> pour la mise en route de l'alarme du
chantier :"
.HTMLBody = "Bonjour, <br>" & _
"Vous trouverez ci-joint les " & _
"<FONT SIZE = 5.5><b>consignes</b></br>" & _
"<FONT SIZE = 3.5> pour la mise en route de l'alarme du
chantier :"
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'---------------------------------------
MichD
Avatar
MichD
Les scories en moins...
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
.HTMLBody = "Bonjour, <br>" & _
"Vous trouverez ci-joint les " & _
"<FONT SIZE = 5.5><b>consignes</b></br>" & _
"<FONT SIZE = 3.5> pour la mise en route de l'alarme du
chantier :"
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'---------------------------------------
MichD
Avatar
MichD
Pour modifier la police de caractères et mettre un peu de couleur :
'----------------------------------------
Sub SendEmailformattext()
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
.HTMLBody = "<FONT SIZE = 5 font face=Arial>Bonjour, <br>" & _
"<FONT SIZE = 3.5 font face=Arial>Vous trouverez ci-joint
les " & _
"<FONT SIZE = 5.5 font face=Arial
color=blue><b>consignes</b></br>" & _
"<FONT SIZE = 3.5 font face=Arial color=Black> pour la
mise " & _
"en route de l'alarme du chantier :"
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'----------------------------------------
MichD
Avatar
Fredo(67)
Le mardi 7 décembre 2021 Í  23:14:12 UTC+1, MichD a écrit :
Un autre petit exemple de mise en page :
'------------------------------------
Sub SendEmailformattext()
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = "Adresse du destinataire"
.Subject = "Test"
.HTMLBody = "<FONT SIZE = 5 font face=Arial>Bonjour, <br>" & _
"<FONT SIZE = 3.5 font face=Arial>Vous trouverez ci-joint les " & _
"<FONT SIZE = 5.5 font face=Arial
color=blue><b>consignes</b></br><br> " & _
"<FONT SIZE = 3.5 font face=Arial color=Black> pour la mise " & _
"en route de l'alarme du chantier :"
.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'------------------------------------
MichD

Je voulais dire que c'était le "MERCI" pour ta réponse que je n'arrive pas Í  écrire plus gros......
En fait dès que tu m'as donné l'astuce pour passer le corps du mail en HTML, j'ai été totalement libéré..
Encore merci pour l'ensemble de ton travail
Avatar
MichD
Le 08/12/21 Í  09:27, MichD a écrit :
SendKeys "^+{ENTER}", True

Remplacer cette ligne de code suivante
SendKeys "^+{ENTER}", True
Par :
SendKeys "%FV",True
MichD
1 2