Nettoyer une liste de données sur excel

juliedrymo Messages postés 1 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 3 novembre 2010 - 3 nov. 2010 à 10:26
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 3 nov. 2010 à 11:37
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

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
3 nov. 2010 à 11:37
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
0
Rejoignez-nous