VBA Aller à la ligne dans le corps du mail

Bonjour,

j'ai réussi a développer une macro qui envoi en automatique a un mail Outlook avec une pièce attaché.

le soucis c'est que je n'arrive pas a faire un saut de ligne (un retour a la ligne) dans le corps du mail.

je veux que mon mail soit comme ça:

bonjour,

ci joint la situation relais du jour.

j'ai bien essayé les & Chr(10) & & Chr(13) & & vbCr & mais ça ne marche pas. le code qui permet de joindre le corps du mail est

.HTMLBody = " Bonjour," & vbCrLf & "ci joint le fichier en pdf de la situation du jour " & .HTMLBody 

si je met .body au lieu de htmlbody ça me fait le saut de ligne mais au dessous de la signature. c'est pas logique.

quelqu'un peut m'aider SVP.

'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String

    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------
   'Exemple pour envoyer un classeur en pièce jointe
   'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
   'If Nom_Fichier = "Faux" Then Exit Sub
'---------------------------------------------------------
   'Ou bien entrer le path et nom du fichier autrement
   Nom_Fichier = FindLastFile("Y:\Pré-op\SOPP et RELAIS\RELAIS\Situation Relais V2\sortie\carte")
   MsgBox Nom_Fichier 'vérifier si le fichier est bien trouvé
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
     With oBjMail
       .Display
       .To = " ***********@gmail.com" ' le destinataire
       .Subject = "meteo des relais du " & Date          ' l'objet du mail
       .HTMLBody = " Bonjour," & vbCrLf & "ci joint le fichier en pdf de la situation du jour " & .HTMLBody  'le corps du mail ..son contenu
       .Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
       .GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
       .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
       .Send
    End With
    MsgBox "Mail envoyé"
    'ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

Bonjour,

tu dois choisir entre 2 modes d'envoi pour le contenu de ton mail, soit HTML soit plain text.

pour HTML tu utilises HTMLBODY et tu dois utiliser des balises HTML pour formatter ton contenu

pour plain text tu utilises BODY et tu es limité dans la mise en page (pas de polices de caractères, pas de gras, etc ...) mais tu peux mettre des sauts de ligne avec VbCRLF.

En principe tu ne peux pas combiner les 2 modes dans un même message.

salut h2so4,

Alors oui tu as tout a fait raison.

avec ce bout de code c'a marche à la perfection.

htmlbody ="<html><body>Bonjour,</body></html><br>" & _
"<html><body>Veuillez trouver ci-joint la situation relais du jour</body></html>" & .htmlbody

Merci encore pour ton aide

Rechercher des sujets similaires à "vba aller ligne corps mail"