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 SubD'avance merci pour le coup de main !
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=" & MsgEnsuite 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 Subshoushane 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'écris sur la premiè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 à 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