Mettre en couleur une partie du mail créé via VBA

Bonjour Sébastien

je t’écris pour demandé ton aide par rapport à mon projet qui est similaire à ce sujet.

Je voudrais mettre en forme en gras les Eléments suivants (en gras) du corps de mon mail

MonMessage.Body = "Bonjour," & vbCrLf & vbCrLf & "le dividende unitaire de " & div & " FCFA sera détache du cours de l'action " & sujet & " à la date du " & date_det MonMessage.Send

MonMessage.Body = "Bonjour," & vbCrLf & vbCrLf & "Paiement du dividende de l'action " & sujetpaie & " d'un montant de " & div & " FCFA à la date du " & date_paie & vbCrLf & vbCrLf & "Cordialement"

Merci d'avance !

Private Sub Workbook_Open()

  Dim MonOutlook As Object
  Dim MonMessage As Object
  Dim sujet, sujetpaie As String
  Dim div As String
  Dim date_jour As String
  Dim date_det As String
  Dim date_paie As String
  Dim lastrow As Long
  Dim i As Long
  Sheets("Alerte Envoi mail").Activate
  lastrow = Feuil16.Cells(Rows.Count, 1).End(xlUp).Row
  date_jour = Range("E1").Value
  For i = 1 To lastrow
  date_det = Cells(i, 3).Value
  sujet = Cells(i, 1).Value
  div = Cells(i, 2).Value
  If date_det = date_jour Then
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.To = 
  'MonMessage.cc = 
  'MonMessage.Bcc = "chose@machin.com"
  MonMessage.Subject = "Détachement du dividende de " & sujet
  MonMessage.Body = "Bonjour," & vbCrLf & vbCrLf & "le dividende unitaire de " & div & " FCFA sera détache du cours de l'action " & sujet & " à la date du " & date_det
  MonMessage.Send
  Set MonOutlook = Nothing
  End If
 Next i
  'mail pour date de paiement
  For i = 2 To lastrow
  date_paie = Cells(i, 4).Value
  sujetpaie = Cells(i, 1).Value
  div = Cells(i, 2).Value
  If date_paie = date_jour Then
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.To = 
  'MonMessage.cc = 
  'MonMessage.Bcc = "chose@machin.com"
  MonMessage.Subject = "Paiement du dividende " & sujetpaie
  MonMessage.Body = "Bonjour," & vbCrLf & vbCrLf & "Paiement du dividende de l'action  " & sujetpaie & " d'un montant de " & div & " FCFA à la date du " & date_paie & vbCrLf & vbCrLf & "Cordialement"
  MonMessage.Send
  Set MonOutlook = Nothing
  End If
  Next i
End Sub

Bonjour,

Je voudrais mettre en forme en gras les Eléments suivants (en gras) du corps de mon mail

Ajoute des balises <b> autour du texte à mettre en gras, par exemple : <b>texte en gras</b>.

Cordialement,

Bonjour,

en complément de la réponse de Sébastien, il faut alors que tu utilises

MonMessage.HtmlBody

et que tu remplaces alors vbCrLf par <br/>

MonMessage.HtmlBody = "Bonjour,<br/><br/>Paiement du dividende de l'action <b>" & sujetpaie & "</b> d'un montant de <b>" & div & " FCFA</b> à la date du <b>" & date_paie & "</b><br/><br/>Cordialement" & MonMessage.HtmlBody

Bonjour Steelson merci beaucoup pour ton aide le code fonctionne bien pour l'envoi de mail de paiement

j'ai essayé avec l'autre ligne de code (envoi de mail de détachement du dividende) à l'image du code que tu m'as fourni mais voici le mail que je reçois

Bonjour,<br/><br/>le dividende unitaire de <b>10 FCFA<b> sera detaché du cours de l'action <b>BICC<b> à la date du <b> 14/07/2020</b><br/><br/>Cordialement<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HTML>
<HEAD>
<META NAME="Generator" CONTENT="MS Exchange Server version 16.0.13001.20266">
<TITLE></TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

</BODY>
</HTML>

la ligne que j'ai modifié est la suivante :

MonMessage.Body = "Bonjour,<br/><br/>le dividende unitaire de <b>" & div & " FCFA<b> sera detaché du cours de l'action <b>" & sujet & "<b> à la date du <b> " & date_det & "</b><br/><br/>Cordialement" & MonMessage.HtmlBody

Je ne sais pas ce qui cloche

Merci

Bonjour,

Je voudrais mettre en forme en gras les Eléments suivants (en gras) du corps de mon mail

Ajoute des balises <b> autour du texte à mettre en gras, par exemple : <b>texte en gras</b>.

Cordialement,

Merci Sébastien

Ta ligne doit commencer par MonMessage.HtmlBody et non MonMessage.Body

Ta ligne doit commencer par MonMessage.HtmlBody et non MonMessage.Body

Salut Steelson ok merci pour ton aide effectivement en remplaçant, le texte est bien en gras

Ma macro est prévue pour envoyé le mail à l'ouverture avec Private Sub Workbook_Open(), j'ai constaté que le mail que je reçois à l'ouverture du fichier ne contient pas le texte en gras alors que celui que je reçois en exécutant le code (le fichier étant déjà ouvert) le texte est bien en gras.

Egalement la signature du mail Outlook que j'ai définie n’apparaît pas dans le message alors qu'en faisant nouveau message dans Outlook cela apparaît.

Merci

le code final

Private Sub Workbook_Open()

  Dim MonOutlook As Object
  Dim MonMessage As Object
  Dim sujet, sujetpaie As String
  Dim div As String
  Dim date_jour As String
  Dim date_det As String
  Dim date_paie As String
  Dim lastrow As Long
  Dim i As Long
  lastrow = Feuil16.Cells(Rows.Count, 1).End(xlUp).Row
  date_jour = Range("E1").Value
  For i = 1 To lastrow
  date_det = Cells(i, 3).Value
  sujet = Cells(i, 1).Value
  div = Cells(i, 2).Value
  If date_det = date_jour Then
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
 MonMessage.To = "amoued@gmail.com"
  'MonMessage.cc = "a@.yahoocom"
  'MonMessage.Bcc = "chose@machin.com"
  MonMessage.Subject = "Détachement du dividende de " & sujet
  MonMessage.HtmlBody = " <big> Bonjour,<br/><br/>le dividende unitaire de <b>" & div & " FCFA </b> sera detaché du cours de l'action <b>" & sujet & " </b> à la date du <b> " & date_det & "</b><br/><br/>Cordialement </big>" & MonMessage.HtmlBody
  'MonMessage.Body = "Bonjour," & vbCrLf & vbCrLf & "le dividende unitaire de <b>" & div & " FCFA<b> sera detaché du cours de l'action <b>" & sujet & "<b> à la date du <b> " & date_det
  MonMessage.Send
  Set MonOutlook = Nothing
  End If
 Next i
  'mail pour date de paiement
  For i = 2 To lastrow
  date_paie = Cells(i, 4).Value
  sujetpaie = Cells(i, 1).Value
  div = Cells(i, 2).Value
  If date_paie = date_jour Then
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.To = "amoued@gmail.com"
  'MonMessage.cc = "a@.yahoocom"
  'MonMessage.Bcc = "chose@machin.com"
  MonMessage.Subject = "Paiement du dividende " & sujetpaie
  MonMessage.HtmlBody = "<big> Bonjour,<br/><br/>Paiement du dividende de l'action <b>" & sujetpaie & "</b> d'un montant de <b>" & div & " FCFA</b> à la date du <b>" & date_paie & "</b><br/><br/>Cordialement</big>" & MonMessage.HtmlBody
  'MonMessage.Body = "Bonjour," & vbCrLf & vbCrLf & "Paiement du dividende de l'action  " & sujetpaie & " d'un montant de " & div & " FCFA à la date du " & date_paie & vbCrLf & vbCrLf & "Cordialement"
  MonMessage.Send
  Set MonOutlook = Nothing
  End If
  Next i
End Sub

Ma macro est prévue pour envoyé le mail à l'ouverture avec Private Sub Workbook_Open(), j'ai constaté que le mail que je reçois à l'ouverture du fichier ne contient pas le texte en gras alors que celui que je reçois en exécutant le code (le fichier étant déjà ouvert) le texte est bien en gras.

Egalement la signature du mail Outlook que j'ai définie n’apparaît pas dans le message alors qu'en faisant nouveau message dans Outlook cela apparaît.

Bonjour,

Bizarrerie ! je ne travaille plus avec outlook donc je ne peux pas tester. Mais au vu des symptômes, ce n'est pas une question de macro mais plutôt de mise en cplace des "composants" par excel.

Pour la signature, la solution la plus simple reste

.htmlbody = "bla bla bla" & .htmlbody

mais il y a d'autres méthodes :

  1. tu peux l'écrire en détail dans ton code VBA à la suite de ton texte
  2. s'il y a un logo, tu peux le mettre dans un onglet de ton fichier et faire appel dans ta macro, fais une recherche il y a des exemples en première page https://www.qwant.com/?q=envoi%20mail%20sans%20signature%20htmlbody&t=web
  3. regarde aussi ce post (mais pour ma pat cela n'a jamais fonctionné correctement) https://forum.excel-pratique.com/excel/macro-insertion-signature-outlook-avec-excel-t66836.html

Le plus simple pour moi est le plus efficace.

Ce sujet dépasse le titre du sujet actuel. Au besoin n'hésite pas à en ouvrir un nouveau.

Bonjour Steelson ok merci pour ta réponse je vais piocher

Bien à toi !

Rechercher des sujets similaires à "mettre couleur partie mail cree via vba"