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