Microsoft 365 Vba mail outlook texte en gras

raf26

XLDnaute Occasionnel
Bonjour le forum,

J'ai besoin de votre aide.

Malgré mes recherches, je suis perdu entre tout ce que j'ai trouvé. (les <b> span style etc....)

Je n'arrive pas à mettre des parties de mon mail en gras et à adapter les résultats des posts.

L'envoi mail marche, je veux juste que le sujet et le corps du mail soit en gras (et si possible taille 14).

Ci-dessous mon code

Merci d'avance pour votre aide.

Bon week-end
VB:
Sub Mail()        'envoi mail
    
    Dim OutObj      As Object, OutMail As Object
    Dim sPath       As String, sNomFic As String
    Dim sAdrmail    As String, strSujet As String, strBody As String
    
    Set OutObj = CreateObject("outlook.application")        'lance outlook
    Set OutMail = OutObj.CreateItem(0)
    
    Sheets("blabla").Visible = TRUE
    sAdrmail = Sheets("blabla").Range("A58")        'adresse destinataire
    SAdrCC = Sheets("balbla").Range("A59")        'adresse CC
    
    strSujet = "engras" & Sheets("balbla").Range("D42") & " " & Sheets("blabla").Range("D41")        'sujet du mail
    
    'corps du mail
    With Sheets("blabla")
        
        strBody = "-----EN GRAS - ------ <br> <br>je veux ce texte en gras" & Sheets("balbla").Range("D42") & "  " & Sheets("balbla").Range("D41") & " je veux ce texte en gras " & " : <br><br>"
        
        strBody = strBody & Extraire(.Range("A53")) & ""        'LIGNE COMPLETE DOIT ETRE EN GRAS
        
    End With
    
    With OutMail
        .Display        'affiche le mail sans l'envoyer sinon .send
        
        .To = sAdrmail
        .CC = SAdrCC
        .Subject = strSujet
        .HTMLBody = strBody & "<br><br>" & .HTMLBody
        
    End With
    
    Set OutMail = Nothing
    Set OutObj = Nothing
    Sheets("blabla").Select
    ActiveWindow.SelectedSheets.Visible = FALSE
    
    Sheets("balbla2").Activate
    
End Sub
 

Phil69970

XLDnaute Barbatruc
Bonjour Raf26 , le forum

Je n'ai pas essayé mais cela ne doit pas être très loin...
Code:
With Sheets("blabla")

'A la place de
        'strBody = "-----EN GRAS - ------ <br> <br>je veux ce texte en gras" & Sheets("balbla").Range("D42") & "  " & Sheets("balbla").Range("D41") & " je veux ce texte en gras " & " : <br><br>"
      
        'strBody = strBody & Extraire(.Range("A53")) & ""        'LIGNE COMPLETE DOIT ETRE EN GRAS

'Texte de remplacement à adapter
    txt = txt & "<p><font size =14><b>" & Extraire(.Range("A53")) & "<font color=cornflowerblue>"  & "</font></font></p>" & vbCrLf
        strBody = strBody & txt & ""        'LIGNE COMPLETE DOIT ETRE EN GRAS

End With

Pour gras ==> font.bold

Cordialement
 

raf26

XLDnaute Occasionnel
Voici le code qui fonctionne et un p'tit clin d'oeil à Phil69970 ;)

VB:
With Sheets("blabla")
        strBody = strBody & "<br><br><b><p style='font-size:16pt'>----DEMO---<br> <br><b>Mon texte ici " & Sheets("blabla").Range("A1") & "  " & Sheets("blabla").Range("A2") & " : <br><br>"
      
        txt = txt & "<p style='font-family:calibri;color:blue;font-size:16pt'><b><u>" & Extraire(.Range("A3")) & "</p>" & vbCrLf
        strBody = strBody & txt & ""
Capture d’écran 2020-04-27 à 09.50.38.jpg
 

raf26

XLDnaute Occasionnel
Arfff désolé patricktoulon :eek:

Je (plus que) débute, j'adapte des bouts de code glanés ici ou là pour mes fichiers.

Le code n'est pas correct, mais la macro fonctionne, pourquoi ?

Si je veux m'améliorer, quel serait la bonne syntaxe ?

Cordialement
 

patricktoulon

XLDnaute Barbatruc
parce que l'erreur n'est pas décelable par vba
ca "marche" oui mais c'est pas correcte
outlook te le lit OK mais il est pas sur que le destinataire qui utilisera une autre app mail le lise correctement il est fort possible que l'affichage deraille c'est meme sur d'ailleurs
le lecteur risque de voir du charabia dans le text (le outerhtml devient du innertext)

tout simplement par ce qu'une des deux balises "P" n'est pas fermé
sauf si mes yeux me jouent des tours
donc non seulement la hiérarchie de l'arborescence n'est pas respectée et en plus tu ferme pas les balises
 

raf26

XLDnaute Occasionnel
Re Patricktoulon

Merci pour ton éclairage, et tes yeux ne te jouent (pas encore ? :)) un tour.

Je n'avais effectivement pas fermé avec </p>...... erreur rectifiée !

Le mail était bien réceptionné et mis en forme sur outlook (pc et tablette), app mail iphone, gmail et mail windows

Merci
 

patricktoulon

XLDnaute Barbatruc
re
Kado ;)
VB:
'tout les arguments sont optional
Function arrangetext(txt, Optional couleur As Variant = "", Optional fontsiz As Long = 0, Optional fontName As String = "calibri", Optional bolder As Boolean = False, Optional italique As Boolean = False, Optional underligne As Boolean = False, Optional barré As Boolean = False)
    Dim Fc As Object
    With CreateObject("htmlfile")
        Set Fc = .createelement("FONT")
        If couleur <> "" Then Fc.Color = couleur
        If fontsiz > 0 Then Fc.Style.fontsize = fontsiz & "px"
        If barré Then txt = "<strike>" & txt & "</strike>"
        If underligne Then txt = "<u>" & txt & "</u>"
        If italique Then txt = "<em>" & txt & "</em>"
        If bolder Then txt = "<strong>" & txt & "</strong>"
        Fc.innerhtml = txt
        If Not IsNull(Fc.getattribute("size")) Then Fc.removeAttribute ("size")
        arrangetext = Fc.outerhtml
    End With
End Function
Sub test()
    Dim strbody$
    strbody = "<p>"
    strbody = strbody & arrangetext("Bonjour ", , , , True, True, True)
    strbody = strbody & arrangetext("Raf26 ", "blue", 28, , True, , True) & "</br>"
    strbody = strbody & arrangetext("comment va tu aujourd'hui", "red", , "Arial") & "</br>"
    strbody = strbody & "tu t'éclate bien sur "
    strbody = strbody & arrangetext("EXCELDOWNLOAD", "rgb(255,0,255)", 30, "Algerian", True)
    strbody = strbody & "</p>"
    MsgBox strbody
    'test dans ton mail
End Sub
 

Discussions similaires

Réponses
6
Affichages
291
Réponses
17
Affichages
1 K
Réponses
2
Affichages
195
Réponses
2
Affichages
110

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 069
Messages
2 085 040
Membres
102 763
dernier inscrit
NICO26