Mise en forme d'un mail automatique - VBA

Bonjour à tous,

je tente de créer un envoie de mail via un doubleclick à partir d'une base de donnée (pour déstinataire multipe) (voir excel en PJ)

tout fonctionne correctement, Simplement quand j'essaie de mettre en forme le mail, rien ne marche, les caractères gras, ni les sauts de ligne, rien ... j'ai tout essayé mais outlook ne reconnait pas ma demande.

peut être me manque-t-il une commande ?

vous remarquerez que dans mon "msg=" j'ai tenté un vbCrLf mais cela ne fonctionne pas non plus

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String, CC As String

If Target = "" Then Exit Sub
If Not Intersect(Range("h:h"), Target) Is Nothing Then

MailAd = Range("f" & Target.Row)
Subj = Range("c" & Target.Row)
Msg = "Dear All," & vbCrLf & "pleased find attached blablabb..."
CC = Range("g" & Target.Row)

URLto = "mailto:" & MailAd & "?subject=" & Subj & "&cc=" & CC & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = "" Then Exit Sub
If Not Intersect(Range("a:a"), Target) Is Nothing Then

Range("h" & Target.Row).Select
With Selection
 .Interior.Color = RGB(255, 240, 0)
 .Font.Color = RGB(255, 0, 0)
 .Font.Bold = True
 .Borders.Weight = 3
 .Borders.Color = RGB(255, 0, 0)
 .Value = "MAIL"
End With

End If

End Sub

D'avance merci pour le coup de main !

capture

Quelle messagerie utilises-tu ?

Je préconise de passer en HTMLbody et non plus body (si cela fonctionne avec ta messagerie)

URLto = "mailto:" & MailAd & "?subject=" & Subj & "&cc=" & CC & "&body=" & Msg

Ensuite tu utilises les balises HTML comme <b>[b]gras[/b]</b>, <i>[i]italique[/i]</i> etc.

shoushane a écrit :

vous remarquerez que dans mon "msg=" j'ai tenté un vbCrLf mais cela ne fonctionne pas non plus

en HTML tu utilises alors <br/>

Merci Steelson pour ton retour,

j'utilise outlook 2010, j'ai tenté de transformer en HTMLbody mais je dois pas être bon dans mon paramétrage en début de code, ...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim MailAd As String

Dim Subj As String
Dim URLto As String, CC As String
Dim objMail As MailItem

If Target = "" Then Exit Sub
If Not Intersect(Range("h:h"), Target) Is Nothing Then

MailAd = Range("f" & Target.Row)
Subj = Range("c" & Target.Row)
CC = Range("g" & Target.Row)

Set objMail = Application.createItem(olMailtem)

 With objMail

 .BodyFormat = olFormatHTML

 .HTMLBody = "<HTML><BODY> Tentative n°10010  </BODY></HTML>"

 .Display

 End With

URLto = "mailto:" & MailAd & "?subject=" & Subj & "&cc=" & CC & "&HTMLbody=" & objMail
ActiveWorkbook.FollowHyperlink Address:=URLto
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = "" Then Exit Sub
If Not Intersect(Range("a:a"), Target) Is Nothing Then

Range("h" & Target.Row).Select
With Selection
 .Interior.Color = RGB(255, 240, 0)
 .Font.Color = RGB(255, 0, 0)
 .Font.Bold = True
 .Borders.Weight = 3
 .Borders.Color = RGB(255, 0, 0)
 .Value = "MAIL"
End With

End If

End Sub
shoushane a écrit :

j'utilise outlook 2010, j'ai tenté de transformer en HTMLbody mais je dois pas être bon dans mon paramétrage en début de code, ...

Voici un exemple de code que j'utilise (notamment avec un tableau <table><tr><td></td></tr></table>).

Les caractères accentués sont ici mis en forme "html".

On peut associer aux cellules de la table les contours, couleurs, formes que l'on veut. Un excellent siet pour cela : https://www.w3schools.com/

Option Explicit
Sub envoi()

Dim messagerie As Object
Dim email As Object
Dim contenu As String

contenu = _
    "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" & _
    "<style>td {font-family: verdana,arial,sans-serif;font-size: 12px;}</style>" & _
    "<body><table>" & _
    "<tr><td>Mon texte est sous forme</td><td>d'un tableau avec 2 colonnes</td></tr>" & _
    "<tr><td>J'&eacute;cris sur la premi&egrave;ve colonne</td><td></td></tr>" & _
    "<tr><td></td><td>ou sur la seconde</td></tr>" & _
    "<tr><td>Je peux faire appel à des cellules<br>faire un retour &agrave; la ligne</td><td></td></tr>" & _
    "<tr><td>mettre un logo<br><img src='http://1.1.1.2/bmi/upload.wikimedia.org/wikipedia/fr/c/cf/Logo_Microsoft_Excel_2013.png'></td><td>et ma signature</td></tr>" & _
    "</table></body></html>"

    Set messagerie = CreateObject("Outlook.Application")
    Set email = messagerie.CreateItem(0)
    With email
        .to = "quelqu'un"
        .Subject = "test envoi mail"
        .htmlbody = contenu
        .display
    End With

    Set messagerie = Nothing
    Set email = Nothing

End Sub
Rechercher des sujets similaires à "mise forme mail automatique vba"