Bonjour,
Je ne retrouve plus comment supprimer toutes les balises HTML d'un document (Email OUTLOOK par exemple) ?
Il me semblait qu'il y avait une solution avec HTMLDOCUMENT...
Bonjour,
Je ne retrouve plus comment supprimer toutes les balises HTML d'un document (Email OUTLOOK par exemple) ?
Il me semblait qu'il y avait une solution avec HTMLDOCUMENT...
Salut Oliv-
par expression rationnelle ?
avec ce pattern :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <s*?[^>]+s*?>
c'est dans quel contexte ton utilisation ?
SAlut,
merci pour ta réponse
j'avais essayé les regex avec ce code, mais pour un EMAIL le résultat n'est pas du tout celui attendu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Function SupprimerHTML(ByVal strHTML As String) As String Dim re As Object 'VBScript_RegExp_55.RegExp ' Remplacement de certains caractères html strHTML = Replace(strHTML, "é", "é") strHTML = Replace(strHTML, "è", "è") strHTML = Replace(strHTML, "à", "à") strHTML = Replace(strHTML, " ", " ") strHTML = Replace(strHTML, "’", "'") strHTML = Replace(strHTML, "ô", "ô") ' On crée une expression régulière Set re = CreateObject("vbscript.regexp") ' On définit le critère qui cherche toute balise HTML 're.Pattern = "<\s*?[^>]+\s*?>" re.Pattern = "<s*?[^>]+s*?>" ' On fait en sorte que la casse (majuscules/minuscules) ' soit indifférente re.IgnoreCase = True ' Traitement global (récursif) re.Global = True ' La fonction Test renvoie True si la chaîne ' respecte le critère SupprimerHTML = re.Replace(strHTML, "") End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub test_Supprimer_HTML_regex() Dim oItem As Outlook.MailItem Set oItem = ActiveInspector.CurrentItem contenu = oItem.HTMLBody Msgbox contenu contenu = SupprimerHTML(contenu) MsgBox contenu 'pour mettre dans le presse papier ' With New DataObject ' .SetText contenu ' .PutInClipboard ' End With End Sub
et finalement j'ai retrouvé ce que je cherchais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Private Sub test_Supprimer_HTML() Dim oItem As Outlook.MailItem Set oItem = ActiveInspector.CurrentItem Dim ohtml As HTMLDocument Set ohtml = New HTMLDocument ohtml.Body.innerHTML = oItem.HTMLBody contenu = ohtml.Body.innerText 'With New DataObject ' .SetText contenu ' .PutInClipboard ' End With MsgBox contenu End Sub
Bonjour Oliv,
j'avais créé ce script pour convertir le caractères accentuer en Htm mais l’inverse est possible en te basant su ce code:
http://www.developpez.net/forums/d15...o/#post8187229
Mais avec cdo tu créer un mail que tu l'envoi pas tu place ton texte dans bodyHtml et tu le récupères converti dans body!
Dernière modification par Invité ; 25/02/2016 à 16h12.
Ceci dit pour moi tu lavais besoin que de ça txt=oItem.body
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub test() Set msg = CreateObject("CDO.Message") 'pour la configuration du message With msg .HTMLBody = "á" Debug.Print .textBody End With End Sub
Dernière modification par AlainTech ; 28/02/2016 à 13h32. Motif: Fusion de 2 messages
Je croyais aussi, mais si tu as dans ton email un lien mailto... tu recuperes une partie de la balise de cette façon
Ok je savais pas
Regarde :
Mon HTMLBODY rend cela :
le body donne cela
le INNERTEXT donne celaBonjour,
Ceci est en gras
HYPERLINK "mailto:toto@toto.com"toto@toto.com
visitez HYPERLINK "http://www.developpez.com"www.developpez.com
tu peux tester avec ce code*Bonjour,
Ceci est en gras
toto@toto.com
visitez www.developpez.com
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Private Sub test_Supprimer_HTML() Dim oItem As Outlook.MailItem Set oItem = ActiveInspector.CurrentItem Dim ohtml As HTMLDocument Set ohtml = New HTMLDocument With New DataObject .SetText oItem.HTMLBody .PutInClipboard End With MsgBox "HTMLBODY dans presse papier" & vbCr & oItem.HTMLBody With New DataObject .SetText oItem.Body .PutInClipboard End With MsgBox "BODY dans presse papier" & vbCr & oItem.Body ohtml.Body.innerHTML = oItem.HTMLBody contenu = ohtml.Body.innerText ' contenu = SupprimerHTML(contenu) 'oItem.HTMLBody With New DataObject .SetText contenu .PutInClipboard End With MsgBox "INNERTEXT dans presse-papier" & vbCr & contenu End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager