Mise en forme Mail Outlook via VBA Excel

Bonjour,

Dans le cadre d'un projet, je conditionne l'envoi d'un mail outlook ainsi que son contenu via le biais d'un userfrom.

Pas de soucie à ce niveau là, c'est quand vient la mise en forme de mon mail où j'ai des difficultés.

Voilà ce que j'aimerai que mon mail donne:

image

Et voilà ce que j'ai:

image

L'objet de mon poste est de savoir comment puis incorporer des sauts de ligne, des tabulations au sein de mon mail outlook.

Vous remerciant par avance de votre aide,

If Opt2 = True And OperationN°1 = "COUPON" And OperationN°2 = "REMBOURSEMENT" And part = "A la souscription" Or Opt2 = True And OperationN°1 = "REMBOURSEMENT" And OperationN°2 = "COUPON" And part = "A la souscription" Then
.Body = "Bonjour," & vbCrLf & "Le " & date_virement & ", le virement émit de " & Remboursement + coupon & "€" & "provient du " & Name & " - " & ISIN & "." & vbCrLf & "Il est à comptabiliser de la manière suivante: " & vbCrLf & "Dt - " & Remboursement + coupon & " €" & vbCrLf & "Ct7- " & coupon & vbCrLf & "Ct 2 - " & Remboursement & vbCrLf & "Vous remerciant par avance, " & vbCrLf & "Bien cordialement,"

.Display
End If

End With

Bonjour,

Il est très beau votre mail !

Vous avez remarqué, les textes ne sont pas les mêmes...

J'y connais pas grand-chose mais voici quand même un essai :

sBody = "<html><body>Bonjour,<br><br>"
sBody = sBody & "Le " & date_virement & ", le virement émis de " & Remboursement & coupon & " € provient du " & Name & " - " & ISIN & ".<br>" 
sBody = sBody & "Il est à comptabiliser de la manière suivante:<br><br>"
sBody = sBody & "Dt - " & Remboursement & coupon & " €<br><br>"
sBody = sBody & "<BQ>Ct7- " & coupon & "<br>"
sBody = sBody & "Ct 2 - " & Remboursement & "</BQ><br><br>"
sBody = sBody & "Vous remerciant par avance, " & vbCrLf & "Bien cordialement,<html><body>"

Ensuite, il faut utiliser la propriété .htmlbody à la place de .body :

.htmlbody = sBody

Disons que c'est un début, je n'ai pas testé et je ne connaissais pas la tabulation.

Cdlt,

Merci 3GB de ta réponse et de ta réactivité! Oui les textes ne sont pas les mêmes c'était à titre d'exemple .

Juste une chose qui bloque... (sinon ça serait trop facile...) c'est lors de l'introduction du sbody, je pense que vous l'utilisez dans le but d'avoir un code propre et éviter d'avoir une ligne à rallonge au sein du module . Cependant si je reprends cette technique je me retrouve avec une message avec le bon objet du mail mais le corps du body est vierge, peut être que je déclare mal la variable sBody, je ne sais pas trop... Si vous avez des élements de réponse je suis preneur :)

Bien cordialement

Sub Mail()

Const olMailItem = 0

Dim sBody As String
Dim Destinataire As String
Dim Autres_Destinataires As String
Dim Objet_mail As String

'Open a new mail item
Dim outlookApp As Object
Set outlookApp = CreateObject("Outlook.Application")
Dim outMail As Object
Set outMail = outlookApp.CreateItem(olMailItem)
With outMail
    .HtmlBody = sBody
    .To = Destinataire
    .CC = Autres_Destinataires
    .Subject = "ITH001 - " & Name & " - " & ISIN & " - " & OperationN°1
sBody = "<html><body>Bonjour, <br><br>" & "Le " & date_virement & ", le virement émis de " & Total & " € provient du " & Name & " - " & ISIN & ".<br>" & "Le " & date_virement & ", le virement émis de " & Total & " € provient du " & Name & " - " & ISIN & ".<br>"

sBody = sBody & "Le " & date_virement & ", le virement émis de " & Total & " € provient du " & Name & " - " & ISIN & ".<br>"
sBody = sBody & "Il est à comptabiliser de la manière suivante:<br><br>"
sBody = sBody & "Dt - " & Total & " €<br><br>"
sBody = sBody & "<BQ>Ct7- " & coupon & "<br>" 'sBody = sBody & "Ct 2 - " & Remboursement & "</BQ><br><br>"
sBody = sBody & "Vous remerciant par avance, " & vbCrLf & "Bien cordialement,<html><body>"
.display
End If

End With

Je t'en prie.

C'est plutôt l'inverse :

Sub Mail()

Const olMailItem = 0

Dim sBody As String
Dim Destinataire As String
Dim Autres_Destinataires As String
Dim Objet_mail As String

sBody = "<html><body>Bonjour, <br><br>" & "Le " & date_virement & ", le virement émis de " & Total & " € provient du " & Name & " - " & ISIN & ".<br>" & "Le " & date_virement & ", le virement émis de " & Total & " € provient du " & Name & " - " & ISIN & ".<br>"

sBody = sBody & "Le " & date_virement & ", le virement émis de " & Total & " € provient du " & Name & " - " & ISIN & ".<br>"
sBody = sBody & "Il est à comptabiliser de la manière suivante:<br><br>"
sBody = sBody & "Dt - " & Total & " €<br><br>"
sBody = sBody & "<BQ>Ct7- " & coupon & "<br>" 'sBody = sBody & "Ct 2 - " & Remboursement & "</BQ><br><br>"
sBody = sBody & "Vous remerciant par avance, " & vbCrLf & "Bien cordialement,</html></body>"

'Open a new mail item
Dim outlookApp As Object
Set outlookApp = CreateObject("Outlook.Application")
Dim outMail As Object
Set outMail = outlookApp.CreateItem(olMailItem)
With outMail
    .HtmlBody = sBody
    .To = Destinataire
    .CC = Autres_Destinataires
    .Subject = "ITH001 - " & Name & " - " & ISIN & " - " & OperationN°1
    .display
End If

End With

J'avais apparemment oublié les "/" des balises fermantes de fin.

Comme dit tout à l'heure, j'ai une incertitude sur la tabulation (<BQ>...</BQ>). Le reste ne devrait pas poser de problème.

Cdlt,

Bonjour,

Merci de ton retour, effectivement tout fonctionne nickel ! Merci infiniment, si quelqu'un passe sur le sujet pour savoir comment on insère une tabulation en html, j'ai vu dans plusieurs site que c'était pas possible fallait passé par une autre méthode, et je vous avoue que je n'y connait absolument rien en html...

Encore merci 3GB,

bien cordialement,

Merci pour ce retour Kuchiki !

Je trouverais ça bizarre que ce soit impossible quand même... Si c'est le cas, c'est dommage. Quand j'aurai le temps, si je n'oublie pas, j'essaierai de chercher une solution pour la tabulation.

Bonne continuation !

Bonjour Kuchiki,

Je déterre ce sujet mais je suis tombé par hasard sur un moyen d'effectuer une tabulation, sans pour autant l'avoir testé. Mais au cas où ça t'intéresserait toujours, je le poste ici :

<span style="white-space: pre;"> </span>

Cdlt,

Rechercher des sujets similaires à "mise forme mail outlook via vba"