Bonjour,
Je réalise actuellement une macro pour envoyer le contenu d'une feuille par mail grâce à une userform. Tout marche jusqu'à l'insertion de la signature. Voici le code que j'utilise (trouvé sur internet) :
Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Set OutlookApp = New Outlook.Application
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
.Display
.To = Sheets("opérations " & Année).Cells(3, 4).Value 'adresses du mail
.CC = ""
.BCC = ""
.Subject = "Opération " & NuméroAliment & " - " 'objet du mail
.Body = Prévisualisation_form.Msg_TXTB.Value
.Send
End With
Le "display" permet l'affichage du message "vierge" d'outlook, le message ne comprend que la signature (format HTML) insérée dans le corp du message. L'exécution pas-à-pas remplie les champs différents champs un par un jusqu'au moment où c'est le champs "body".
A ce moment là, le corp du message se change, il prend la valeur qui apparaissait dans le champs "Msg_TXTB" de la userform "Prévisualisation_form" et la signature disparait!
Je remplace alors pas la ligne suivante :
.Body = Prévisualisation_form.Msg_TXTB.Value & .body
Lors de l'exécution, la signature reste, mais son format change et au final la signature ne peut plus être envoyé parce qu'elle n'est plus présentable.
Je re-change alors la dernière ligne par
.HTMLBody = Prévisualisation_form.Msg_TXTB.Value & .HTMLbody
Lors de l'exécution, la signature reste au format HTML, mais tout le corp du message se ratatine (plus de saut de ligne).
Ma question est la suivante : peut-on convertir le corp du mail (variable Prévisualisation_form.Msg_TXTB.Value) en HTML pour pouvoir l'introduire dans le mail correctement ? Ou tout simplement voyez-vous un autre moyen d'arriver à envoyer la signature sans en changer son format ?
Merci d'avance =)
Coco

Le ".BodyFormat = olFormatHTML" suivi de ".body" équivaut au ".HTMLbody" pour mettre le texte en HTML. Cette solution n'a pas fonctionné.
Ensuite pour l'utilisation de variables intermédiaires "Signature = .Display " ne marche pas (fonction ou variable attendue). J'ai testé ce que tu m'as donné. J'ai mis :
With ...
.display
signature = .body
[...]
End With
Mais lorsque je réutilise la variable signature avec
.body = signature
ou
.HTMLbody = signature
la signature a changé et on voit les codes comme "HYPERLINK "mailto:..." ". dans les deux cas.
La difficulté en faite c'est de convertir le texte contenue dans une cellule et représenté par Prévisualisation_form.Msg_TXTB.Value en HTML.
J'ai remarqué que le copier/coller manuel marche alors j'ai gardé ".display" au début du with. J'ai essayé de simuler des touches ctrl+c et ctrl+v mais je bute pour continuer la macro.
C'est bizarre parce que quand je fais copier-coller manuellement, ça marche...
Coco=]