IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment supprimer les balises HTML ?


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut Comment supprimer les balises HTML ?
    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...

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 123
    Points : 9 951
    Points
    9 951
    Billets dans le blog
    5
    Par défaut
    Salut Oliv-

    par expression rationnelle ?

    avec ce pattern :


    c'est dans quel contexte ton utilisation ?

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    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

  4. #4
    Invité
    Invité(e)
    Par défaut
    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.

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    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
    Merci Robert, je la garde sous la main, soit dit en passant j'ai eu le même pb d'accent en CDO qu'évoqué dans le post cité !

  6. #6
    Invité
    Invité(e)
    Par défaut
    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 = "&aacute;"
         Debug.Print .textBody
    End With
    End Sub
    Ceci dit pour moi tu lavais besoin que de ça txt=oItem.body
    Dernière modification par AlainTech ; 28/02/2016 à 13h32. Motif: Fusion de 2 messages

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Je croyais aussi, mais si tu as dans ton email un lien mailto... tu recuperes une partie de la balise de cette façon

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ok je savais pas ��

  9. #9
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Regarde :

    Mon HTMLBODY rend cela :

    Bonjour,

    Ceci est en gras

    toto@toto.com
    visitez www.developpez.com


    le body donne cela

    Bonjour,

    Ceci est en gras

    HYPERLINK "mailto:toto@toto.com"toto@toto.com
    visitez HYPERLINK "http://www.developpez.com"www.developpez.com
    le INNERTEXT donne cela

    *Bonjour,

    Ceci est en gras

    toto@toto.com
    visitez www.developpez.com
    tu peux tester avec ce code

    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TinyMCE] Comment supprimer les balises html
    Par Magjjy dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 10/06/2011, 14h57
  2. [PHP 5.2] Comment supprimer les balise php mais pas les html
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 19/05/2009, 23h28
  3. Réponses: 4
    Dernier message: 27/10/2008, 12h22
  4. [RegEx] Supprimer les balises HTML
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 16h51
  5. [RegEx] Supprimer les balises HTML
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo