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
Ta ligne doit commencer par MonMessage.HtmlBody
et non MonMessage.Body
Ta ligne doit commencer par
MonMessage.HtmlBody
et nonMonMessage.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 :
- tu peux l'écrire en détail dans ton code VBA à la suite de ton texte
- 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
- 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 !