Suppression retour & balise HTML
Bonjour à tous les experts...
J'ai besoin d'un peu d'aide svp !
Dans la colonne E de l'onglet "data source", vous trouverez des données brutes telles que je les reçois.
Elles sont remplies de "retours chariot" et de code HTML.
J'aimerais trouver un moyen de supprimer tout cela pour en faire un texte "propre" tel que je l'ai (manuellement fait) dans la colonne E de l'onglet "résultat souhaité".
Est-ce que vous pourriez m'aider svp ?
Bien sûr je n'ai mis qu'une seule ligne de données mais le fichier original en comporte des milliers...
Merci
Olivier
Bonjour Olivier
Dans ton fichier corrigé :
1) il y a une macro créée par Nad-Dan dont j'ai ajouté une ligne dans le code.
En sélectionnant une plage de cellule cette macro supprime l'ensemble des espaces et des retours à la ligne
2) A l'ouverture du fichier il y a un formulaire qui s'ouvre (Solution 2)
a) Sélectionne une cellule
b) clique sur le bouton VISUALISER LA FORMULE
c) Les données initiales de la cellules sont en grisé, et les données à modifier sont en dessous.
d) Cliques sur le bouton SUPPRIMER LES RETOURS A LA LIGNE ET LES ESPACES
e) Maintenant tu peux aussi modifier les données non grisé avec des retours à la ligne, des tabulations et des modifications de texte
N'oublie pas de cliquer sur le bouton MODIFER LA CELLULE
J'utilise ce formulaire (ma création) pour corriger des formules longues et complexes en visualisant les données initiales (c'est très pratique)
Deuxième solution dont la 1ère solution est complémentaire pour modifier par la suite la cellule suivant les éléments restant après suppression du code HTML
Insère cette fonction dans un module
Option Explicit
' ---
' SUPPRESSION DES BALISES HTML D'UNE CHAINE DE CARACTERES
' ---
'
Function SupprimerHTML(ByVal strHTML As String) As String
Dim re As 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 = New RegExp ' On définit le critère qui cherche toute balise HTML
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 FunctionPuis dans VBAProject + Outils + Références recherches la références Microsoft VBScript Regular Expression 5.5
Ensuite dans une cellule recherche la fonction personnalisée SupprimerHTML et sélectionne la cellule que tu veux.