Les Allergies
Alimentaires
Posez votre question Signaler

VBA: Convertir un texte (variable) en HTML

coconuts_n 16Messages postés 2 juillet 2010Date d'inscription 12 novembre 2010Dernière intervention - Dernière réponse le 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
Lire la suite 

VBA: Convertir un texte (variable) en HTML »

4 réponses
Réponse
+0
moins plus
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
coconuts_n - 19 juil. 2010 à 10:51
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=]
Ajouter un commentaire
Réponse
+0
moins plus
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).
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « VBA: Convertir un texte (variable) en HTML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?