Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

70 views
Skip to first unread message

Fredo(67)

unread,
Dec 7, 2021, 3:53:51 AM12/7/21
to
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...

MichD

unread,
Dec 7, 2021, 7:06:18 AM12/7/21
to
Le 07/12/21 à 03:53, Fredo(67) a écrit :
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

MichD

unread,
Dec 7, 2021, 7:23:32 AM12/7/21
to
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 = "MdM...@Gmail.com"
.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


MichD

unread,
Dec 7, 2021, 7:34:58 AM12/7/21
to
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

Fredo(67)

unread,
Dec 7, 2021, 8:29:41 AM12/7/21
to
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)

MichD

unread,
Dec 7, 2021, 9:16:33 AM12/7/21
to


> (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

MichD

unread,
Dec 7, 2021, 9:31:18 AM12/7/21
to
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

MichD

unread,
Dec 7, 2021, 9:55:34 AM12/7/21
to

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"

MichD

unread,
Dec 7, 2021, 12:14:38 PM12/7/21
to


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

MichD

unread,
Dec 7, 2021, 5:14:12 PM12/7/21
to

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

Fredo(67)

unread,
Dec 8, 2021, 4:14:28 AM12/8/21
to
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

MichD

unread,
Dec 8, 2021, 9:27:39 AM12/8/21
to
Le 08/12/21 à 04:14, Fredo(67) a écrit :
Tu peux faire la même chose avec Mozilla Thunderbird :

'-------------------------------------
Public Sub SendEmail()
Dim thund As String
Dim email As String
Dim cc As String
Dim bcc As String
Dim subj As String
Dim body As String

email = "te...@test.com"
cc = "te...@test.com"
bcc = "te...@test.com"
subj = "Testing"
body = "<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 :"

thund = "C:\Program Files\Mozilla Thunderbird\thunderbird.exe " & _
"-compose " & """" & _
"to='" & "Adresse du destinataire" & "'," & _
"cc='" & cc & "'," & _
"bcc='" & bcc & "'," & _
"subject='" & "test" & "'," & _
"body='" & "<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 :" & "'" & """"

Call Shell(thund, vbNormalFocus)
SendKeys "^+{ENTER}", True

End Sub
'-------------------------------------

MichD

MichD

unread,
Dec 8, 2021, 9:51:14 AM12/8/21
to
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

MichD

unread,
Dec 9, 2021, 10:55:56 AM12/9/21
to
Le 08/12/21 à 09:51, MichD a écrit :
Pour le plaisir, j'ai remplacé le texte contenu dans l'item .HTMLBODY
par des variables. Au besoin, on peut remplacer ce texte des variables
par une référence d'une adresse de cellule.


'-----------------------------------------------------------
Sub SendEmailformattext10()

Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Dim Sujet As String
Dim Salutation As String
Dim Texte As String, TexteCouleur As String, texte2 As String
Dim Destinataire As String
'---------------------------------------------------
'Définir le texte pour chacune de ces variables.
Destinataire = "Joséph...@Gmail.com"
Sujet = "Je ne sais pas..."
Titre = "Bonjour Monsieur"
Texte1 = "Vous trouverez ci-joint les "
TexteCouleur = "consignes"
texte2 = " pour la mise en route de l'alarme du chantier :"
'---------------------------------------------------

Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Display
.To = Destinataire
.Subject = Sujet
.HTMLBody = "<FONT SIZE = 4 font face=Arial>" & Titre & ", <br>" & _
"<FONT SIZE = 3.5 font face=Arial>" & Texte1 & _
"<FONT SIZE = 5.5 font face=Arial color=blue><b>" &
TexteCouleur & "</b></br> " & _
"<FONT SIZE = 3.5 font face=Arial color=Black>" & texte2 & ""
.Send
End With

Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------------

MichD
0 new messages