J'ai une donnée avec des balises HTML dans une feuille Excel comme ci-dessous:
<b>This is test data<br>Nice
<div> Go on this is next Cell
Very goood <b>.....</b>
Donc, fondamentalement, je veux supprimer ou remplacer toutes les balises HTML avec un espace dans la feuille Excel.
Appliquez Replace All
avec le motif <*>
:
Pour l'ouvrir, allez dans le ruban Home > Find & Select > Replace...
ou appuyez simplement sur CTRL+H.
Les espaces supplémentaires peuvent être supprimés davantage à l’aide de la fonction TRIM
. Bonne chance!
Ouvrez VBA dans Excel (Alt + F11), cliquez sur le nom du projet (nom de la feuille de calcul) dans l’explorateur de projet à droite. Insérer -> Nouveau module. Collez la fonction définie par l'utilisateur ci-dessous dans la fenêtre du module. Enregistrer sous .XLSM qui autorisent les macros.
tapez la fonction '= StripHTML (A2)' en supposant que vos données se trouvent dans la cellule A2. Vous pouvez également télécharger un exemple de travail ici:
http://jfrancisconsulting.com/how-to-strip-html-tags-in-Excel/
Function StripHTML(cell As Range) As String
Dim RegEx As Object
Set RegEx = CreateObject(“vbscript.regexp”)
Dim sInput As String
Dim sOut As String
sInput = cell.Text
sInput = Replace(sInput, “\x0D\x0A”, Chr(10))
sInput = Replace(sInput, “\x00″, Chr(10))
‘replace HTML breaks and end of paragraphs with line breaks
sInput = Replace(sInput, “</P>”, Chr(10) & Chr(10))
sInput = Replace(sInput, “<BR>”, Chr(10))
‘replace bullets with dashes
sInput = Replace(sInput, “<li>”, “-”)
‘add back all of the special characters
sInput = Replace(sInput, “–”, “–”)
sInput = Replace(sInput, “—”, “—”)
sInput = Replace(sInput, “¡”, “¡”)
sInput = Replace(sInput, “¿”, “¿”)
sInput = Replace(sInput, “"”, “”)
sInput = Replace(sInput, ““”, ““”)
sInput = Replace(sInput, “””, “””)
sInput = Replace(sInput, “”, “‘”)
sInput = Replace(sInput, “‘”, “‘”)
sInput = Replace(sInput, “’”, “’”)
sInput = Replace(sInput, “«”, “«”)
sInput = Replace(sInput, “»”, “»”)
sInput = Replace(sInput, “ ”, ” “)
sInput = Replace(sInput, “&”, “&”)
sInput = Replace(sInput, “¢”, “¢”)
sInput = Replace(sInput, “©”, “©”)
sInput = Replace(sInput, “÷”, “÷”)
sInput = Replace(sInput, “>”, “>”)
sInput = Replace(sInput, “<”, “<”)
sInput = Replace(sInput, “µ”, “µ”)
sInput = Replace(sInput, “·”, “·”)
sInput = Replace(sInput, “¶”, “¶”)
sInput = Replace(sInput, “±”, “±”)
sInput = Replace(sInput, “€”, “€”)
sInput = Replace(sInput, “£”, “£”)
sInput = Replace(sInput, “®”, “®”)
sInput = Replace(sInput, “§”, “§”)
sInput = Replace(sInput, “™”, “™”)
sInput = Replace(sInput, “¥”, “¥”)
sInput = Replace(sInput, “á”, “á”)
sInput = Replace(sInput, “Á”, “Á”)
sInput = Replace(sInput, “à”, “à”)
sInput = Replace(sInput, “À”, “À”)
sInput = Replace(sInput, “â”, “â”)
sInput = Replace(sInput, “”, “”)
sInput = Replace(sInput, “å”, “å”)
sInput = Replace(sInput, “Å”, “Å”)
sInput = Replace(sInput, “ã”, “ã”)
sInput = Replace(sInput, “Ô, “Ô)
sInput = Replace(sInput, “ä”, “ä”)
sInput = Replace(sInput, “Ä”, “Ä”)
sInput = Replace(sInput, “æ”, “æ”)
sInput = Replace(sInput, “Æ”, “Æ”)
sInput = Replace(sInput, “ç”, “ç”)
sInput = Replace(sInput, “Ç”, “Ç”)
sInput = Replace(sInput, “é”, “é”)
sInput = Replace(sInput, “É”, “É”)
sInput = Replace(sInput, “è”, “è”)
sInput = Replace(sInput, “È”, “È”)
sInput = Replace(sInput, “ê”, “ê”)
sInput = Replace(sInput, “Ê”, “Ê”)
sInput = Replace(sInput, “ë”, “ë”)
sInput = Replace(sInput, “Ë”, “Ë”)
sInput = Replace(sInput, “í”, “í”)
sInput = Replace(sInput, “Í”, “Í”)
sInput = Replace(sInput, “ì”, “ì”)
sInput = Replace(sInput, “Ì”, “Ì”)
sInput = Replace(sInput, “î”, “î”)
sInput = Replace(sInput, “Δ, “Δ)
sInput = Replace(sInput, “ï”, “ï”)
sInput = Replace(sInput, “Ï”, “Ï”)
sInput = Replace(sInput, “ñ”, “ñ”)
sInput = Replace(sInput, “Ñ”, “Ñ”)
sInput = Replace(sInput, “ó”, “ó”)
sInput = Replace(sInput, “Ó”, “Ó”)
sInput = Replace(sInput, “ò”, “ò”)
sInput = Replace(sInput, “Ò”, “Ò”)
sInput = Replace(sInput, “ô”, “ô”)
sInput = Replace(sInput, “Ô”, “Ô”)
sInput = Replace(sInput, “ø”, “ø”)
sInput = Replace(sInput, “Ø”, “Ø”)
sInput = Replace(sInput, “õ”, “õ”)
sInput = Replace(sInput, “Õ”, “Õ”)
sInput = Replace(sInput, “ö”, “ö”)
sInput = Replace(sInput, “Ö”, “Ö”)
sInput = Replace(sInput, “ß”, “ß”)
sInput = Replace(sInput, “ú”, “ú”)
sInput = Replace(sInput, “Ú”, “Ú”)
sInput = Replace(sInput, “ù”, “ù”)
sInput = Replace(sInput, “Ù”, “Ù”)
sInput = Replace(sInput, “û”, “û”)
sInput = Replace(sInput, “Û”, “Û”)
sInput = Replace(sInput, “ü”, “ü”)
sInput = Replace(sInput, “Ü”, “Ü”)
sInput = Replace(sInput, “ÿ”, “ÿ”)
sInput = Replace(sInput, “”, “´”)
sInput = Replace(sInput, “”, “`”)
‘replace all the remaining HTML Tags
With RegEx
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = “<[^>]+>” ‘Regular Expression for HTML Tags.
End With
sOut = RegEx.Replace(sInput, “”)
StripHTML = sOut
Set RegEx = Nothing
End Function
Comme la macro ci-dessus n'a pas fonctionné pour moi, je l'ai corrigée moi-même. C'est mon premier script, si vous pouvez l'améliorer, le rendre plus rapide, en ajouter plus, alors vous êtes plus que bienvenu!
Ok les gars, je n’ai aucune expérience en programmation (à l’exception de Java très basique il ya 6 ans), mais avec de l’aide, beaucoup de devinettes (quelques heures en fait), j’ai réussi à créer ce script, il fonctionne comme un charme pour supprimer la plupart et 8 # texte mais il ne remplace pas <BR>
par un saut de ligne (vous pouvez le faire en appuyant sur CTRL + H, "find: <br>
" "replace: (maintenez maintenant ALT enfoncée et utilisez le type 0010 avec votre NUMPAD. Un petit point devrait clignoter la fenêtre de remplacement, puis cliquez sur "remplacer tout").
Collez le code ci-dessous dans un module utilisateur (alt + f11, cliquez avec le bouton droit sur Sheet1-> insert-> Module-> coller le code)
Et créez un bouton en sélectionnant Fichier-> Options-> Personnaliser le ruban-> cochez la case Développeur. Ensuite, allez dans l'onglet développeur -> Insertion -> Bouton -> puis placez le bouton et cliquez avec le bouton droit de la souris -> attribuer une macro -> Choisir RemoveTags.
Sub RemoveTags()
Dim r As Range
Selection.NumberFormat = "@" 'set cells to text numberformat
With CreateObject("vbscript.regexp")
.Pattern = "\<.*?\>"
.Global = True
For Each r In Selection
r.Value = Replace(.Replace(r.Value, ""), "’", " ")
r.Value2 = Replace(.Replace(r.Value2, ""), "–", " ")
Next r
For Each r In Selection
r.Value = Replace(.Replace(r.Value, ""), "‘", " ")
r.Value2 = Replace(.Replace(r.Value2, ""), "
", " ")
Next r
For Each r In Selection
r.Value = Replace(.Replace(r.Value, ""), "
", " ")
r.Value2 = Replace(.Replace(r.Value2, ""), "’s", " ")
Next r
End With
End Sub
Private Sub CommandButton1_Click()
End Sub