VBA: Convertir un texte (variable) en HTML

Fermé
coconuts_n Messages postés 16 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 12 novembre 2010 - 16 juil. 2010 à 09:51
coconuts_n Messages postés 16 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 12 novembre 2010 - 22 juil. 2010 à 13:48
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

3 réponses

melojazzman Messages postés 7 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 17 juillet 2010
Modifié par melojazzman le 17/07/2010 à 10:59
Bonjour,

Sans l'avoir testé, essaie de rajouter ceci dans ton With :

[...]
.BodyFormat = olFormatHTML
[...]

Sinon :

essaie d'utiliser une variable intermédiaire :

Signature = .Display (au début du With)

Message = Prévisualisation_form.Msg_TXTB.Value (après ton message)

.HTMLBody = Message & Signature

Mélo
0
Tout d'abord merci pour ta réponse=)

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=]
0
J'essaie d'enregistrer en format "htm" puis de reprendre le contenu de cet page. Mais l'enregistrement prends en compte la cellule et non la valeur contenue dans la cellule! Je me retrouve donc avec un cadre (sorte de zone de texte).
0
coconuts_n Messages postés 16 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 12 novembre 2010 1
22 juil. 2010 à 13:48
Bonjour,

bah finalement j'ai abandonner, j'ai mis directement mon message au format HTML manuellement en utilisant une concatenation (c'est à dire avec plein de <br> un peu partout pour faire des sauts de ligne).
Finalement, j'arrive à insérer une signature correctement

Merci quand même =)

Coco
0