Nettoyer une liste de données sur excel

Signaler
Messages postés
1
Date d'inscription
mercredi 3 novembre 2010
Statut
Membre
Dernière intervention
3 novembre 2010
-
Messages postés
31620
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 mars 2021
-
Bonjour tout le monde,

J'aurais besoin de conseil pour "nettoyer" une liste excel automatiquement. Je m'étais lancé à la main ligne par ligne mais c'est vraiment trop long

Voila la situation :

Il y'a 2 onglets sur le fichier excel, un onglet "filtre" et un onglet "BDD"

Dans la colonne A de l'onglet filtre, j'ai une cinquantaine d'expression de 1 ou plusieurs mots.

Dans la colonne B de l'onglet "BDD", j'ai ma longue liste à nettoyer. Chaque cellule contient une phrase, je veux "nettoyer" cette colonne et faire apparaitre la version "propre" en colonne D. Les 2 règles de "nettoyage" sont les suivantes :

règle 1 : chaque cellule dans la colonne B est une phrase qui se termine toujours par la même fin ": xxxx" ou "Gé : xxxx" -> Je souhaite retirer ce ": xxx" ou "Gé : xxxx"

exemple1 : "le camion roule sur l'autoroute Gé : B/30" doit devenir "le camion roule sur l'autoroute"
exemple2 : "la voiture roule dans la ville : Y/2" doit devenir "la voiture roule dans la ville"


[b]règle 2 :/b certaines cellules contiennent un mot ou expression que je souhaite enlever automatiquement. J'ai listé ces mots ou groupes de mot à filtrer dans la colonne A de l'onglet "filtre".

exemple3 : sachant que ma colonne "filtre" contient le mot "CAR", la phrase "le car roule sur l'autoroute" doit devenir "le roule sur l'autoroute"

/!\ Il faut supprimer l'expression la plus longue contenue dans la colonne "filtre". Par ex, si la colonne "filtre" contient les expressions "car" et "car renault", la phrase "le car renault roule sur l'autoroute" doit devenir "le roule sur l'autoroute"

=> Petite complication de la règle numéro 2, toutes les expressions que je cherche à supprimer automatiquement peuvent potentiellement être suivies de l'expression "LP" ou "L.P." ou "L.P". Il faut que ces 3 expressions soient également supprimées automatiquement.

exemple4 : "le car L.P roule sur l'autoroute" devient "le roule sur l'autoroute".

/!\ Les expressions "LP", "L.P." ou "L.P" ne doivent être supprimées que lorsqu'elles suivent immédiatement un mot reconnu à filtrer.
exemple 5 : "le car roule sur l'autoroute LP" devient "le roule sur l'autoroute LP"

Merci beaucoup d'avance si vous pouvez me proposer une solution

Julie

1 réponse

Messages postés
31620
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 mars 2021
344
Bonjour,

je n'ai pas trop le temps d'ecrire le code complet..mais voila ce que je propose:
Parcourir les cellules de ton document à modifier.
Utiliser la gestion des chaines de caractères pour modifier le contenu de celles-ci.

Pour manipuler les chaines de caractères, je t'invite à lire le tuto suivant :
ManipulerChainesCaracteres.

Pour parcourir tes cellules, tu pourrais faire comme ceci :

Sub parcou()
Dim Ma_Plage As Range

'Plage à traiter
Set Ma_Plage = Range("A1:B10")

For Each cell In Ma_Plage
'lire cellule
Texte = cell.Value

'tester si contient le texte recherché
Test = InStr(1, Texte, "car")
    If Test > 0 Then ' si trouvé...
        Nouveau_Texte = Replace(Texte, "car", "") 'remplacement du texte
        cell.Value = Nouveau_Texte 'ecriture dans la cellule
    End If
Next

End Sub


ceci n'est qu'un exemple.. reste à l'adapter à tes besoins.

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI