Bonjour le forum,
J'utilise un formulaire permettant de générer un mailing. J'utilise dans le code VBA une mise en forme via HTML afin d'obtenir une mise en forme optimisée du mail.
En cellule G7 et H7 l'utilisateur saisit le contenu de sa demande ainsi qu'un éventuel commentaire.
Ma problématique est la suivante :
Lorsqu'un texte trop long est saisi en colonne G7 ou H7 il n'y a pas de retour à la ligne automatique dans le mail qui est généré. Cela donne alors une ligne à rallonge ce qui n'est pas très esthétique pour le lecteur.
Mon besoin :
Passé un certain nombre de caractère ou peut-être de mots (pour éviter de cutter un mot en plein milieu) j'aimerai qu'il y ai un retour à la ligne automatique.
Sur ce site très détaillé (https://laurent-ott.developpez.com/tutoriels/excel-mail-outlook/#LIII-B) traitant de l'utilisation de l'HTML dans du code VBA je n'ai pas trouvé de solution à mon problème.
Peut-être en utilisant la fonction "Mail_SautDeLigne", mais je ne vois pas comment faire.
Code utilisé :
En PJ vous trouverez un fichier avec mon formulaire et mon code actuellement utilisé.
Merci d'avance et bonne journée
J'utilise un formulaire permettant de générer un mailing. J'utilise dans le code VBA une mise en forme via HTML afin d'obtenir une mise en forme optimisée du mail.
En cellule G7 et H7 l'utilisateur saisit le contenu de sa demande ainsi qu'un éventuel commentaire.
Ma problématique est la suivante :
Lorsqu'un texte trop long est saisi en colonne G7 ou H7 il n'y a pas de retour à la ligne automatique dans le mail qui est généré. Cela donne alors une ligne à rallonge ce qui n'est pas très esthétique pour le lecteur.
Mon besoin :
Passé un certain nombre de caractère ou peut-être de mots (pour éviter de cutter un mot en plein milieu) j'aimerai qu'il y ai un retour à la ligne automatique.
Sur ce site très détaillé (https://laurent-ott.developpez.com/tutoriels/excel-mail-outlook/#LIII-B) traitant de l'utilisation de l'HTML dans du code VBA je n'ai pas trouvé de solution à mon problème.
Peut-être en utilisant la fonction "Mail_SautDeLigne", mais je ne vois pas comment faire.
Code utilisé :
VB:
Sub MAILING()
'Genere le mail de requête
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim Signature As String
Dim CorpsDuMessage As String
Dim Texte As String
' Créer une instance d'Outlook
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
' Afficher l'e-mail pour récupérer la signature par défaut
With OutlookMail
.Display
Signature = .HTMLBody
End With
Sheets("TEST").Activate
Num = " TEST2025 N° " & Range("B7").Value
Emetteur = Range("E2").Value
Dest = Range("E3").Value
'LD Test
Destrequête = ""
With Sheets("Données")
For idest = 1 To .[B2].End(xlDown).Row
Destrequête = Destrequête & .Cells(idest, "B").Value & ";"
Next idest
End With
Set OutObj = CreateObject("Outlook.Application")
Set Email = OutObj.CreateItem(0)
'****** Liste diffusion en destinataire ******
LD1 = Destrequête
LDcc = Destrequête
' ****** Construction du mail avec mise en forme HTML ******
Set OutObj = CreateObject("Outlook.Application")
Set Email = OutObj.CreateItem(0)
' Afficher l'objet mail pour avoir la signature
Email.Display
' Mémoriser la signature qui s'affiche
Signature = Email.HTMLBody
Email.To = LD1
Email.CC = LDcc
' Sujet de l'eMail
Email.Subject = "#Requête" & " " & Num & " " & " De " & " " & Emeteur & " " & "Pour" & " " & Dest
' Corps de mon mail
Email.HTMLBody = "Bonjour,<BR><BR>" _
& "Vous trouverez ci-dessous une nouvelle requête :<BR><BR>" _
& "Type de requête : <b>" & Sheets("TEST").Range("C7").Value & " </b> <p>" _
& "Périmètre : <b>" & Sheets("TEST").Range("D7").Value & " </b> <p>" _
& "Période concernée : <b>" & " " & "De S" & Sheets("TEST").Range("E7").Value & " " & "à S" & Sheets("TEST").Range("F7").Value & " </b> <p>" _
& "Contenu de la requête : <b>" & Sheets("TEST").Range("G7").Value & " </b> <p>" _
& "<u> Commentaire(s) éventuel(s) : </u> <b>" & Sheets("TEST").Range("H7").Value & " </b> <p>" _
& "<u> Lien d'accès au fichier : </u> <b>" & "<a href=" & " " & Sheets("Données").Range("A1").Value & " <ICI</a> " & " </b> <p>" _
& "Cordialement," & Signature
Email.Display
' Effacer les objets
Set Email = Nothing
Set OutObj = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
MsgBox " Message correctement transmis", vbInformation
End Sub
En PJ vous trouverez un fichier avec mon formulaire et mon code actuellement utilisé.
Merci d'avance et bonne journée