Suppression automatique de mots dans une liste Excel

Bonjour à tous,

Je souhaite savoir s'il est possible d'automatiser la suppression automatique de certains mots dans une liste de plusieurs dizaines de milliers d'entrées ?

Je souhaite éliminer les mots de moins de 5 lettres ainsi que les mots composés séparés soit par un espace soit par un "-" (ex : sage-femme ou sage femme)

Je le fais actuellement manuellement en utilisant la fonction Recherche pour les mots composés et la fonction Cherche pour les mots de moins de 5 lettres mais cela me prend des heures...

Auriez-vous une formule magique à me proposer ?

Merci beaucoup,

Val

bonjour,

une proposition via une macro, supprime tous les mots de moins de 5 lettres de toutes les cellules de la page active

Sub aargh()
    For Each cel In ActiveSheet.UsedRange
        If cel <> "" Then
            mot = Split(Replace(Replace(cel, "-", " "), "'", " "))
            nouveau = ""
            For i = LBound(mot) To UBound(mot)
                If Len(mot(i)) > 5 Then nouveau = nouveau & " " & mot(i)
            Next i
            cel.Value = Trim(nouveau)
        End If
    Next
End Sub

Bonjour,

Sans macro, et en imaginant que les données se trouvent dans la colonne A, à partir de A2, tu peux écrire en B2 :

=si(ou(nbcar(a2)<5;estnum(trouve(" ";a2));estnum(trouve("-";a2)));a2;"") 
Si tu es dans un tableau structuré, cela s'étend automatiquement jusqu'à la fin. Sinon, tu peux étendre cela jusqu'à la fin en double cliquant sur la poignée de recopie incrémentée.
Ensuite,tu filtres ta colonne B pour n'afficher que les lignes vides. Tu sélectionnes la ligne 2, puis tu fais ctrl + shift + flèche du bas pour sélectionner toutes tes lignes vides. Tu les supprimes, et voilà. 

Bonjour h2so4,

Merci beaucoup pour ta proposition.

J'ai tenté de copier ta macro dans mon fichier mais j'ai dû mal le faire car cela m'a fait disparaitre plein de données qui n'avaient pas lieu de disparaître

Je joins un fichier contenant une partie des mots que j'ai besoin de trier, pourrais-tu y installer ta macro et me le renvoyer ? Je finirai de le compléter ensuite...

Merci beaucoup.

Val

7exemple-forum.xlsx (141.37 Ko)

Bonjour,

en effet la macro supprimé tous les mots de moins de 6 lettres au lieu de 5, il suffit de remplacer le 5 par un 4 dans cette instruction

If Len(mot(i)) > 5 Then nouveau = nouveau & " " & mot(i)

Mais à la lumière de ton fichier, je vois qu'il n'y aurait qu' un seul mot par cellule et seulement dans la colonne A à prendre en compte au lieu de phrases potentiellement dans toutes les colonnes. et qu'il faut gérer des cas d'erreur (#value!) qui provoque l'arrêt de la macro,

une nouvelle version donc.

Sub aargh()
    With ActiveSheet 'feuille active
        dl = .Cells(Rows.Count, 1).End(xlUp).Row 'dernière ligne utilisée
        cel = .Range("A1").Resize(dl, 1) 'on charge les mots de la colonne A dans une table vba
        For j = 1 To dl 'on prend les mots cellules par cellules
        If IsError(cel(j, 1)) Then cel(j, 1) = "" 'erreur on vide cette cellule
            If cel(j, 1) <> "" Then
                mot = Split(Replace(Replace(cel(j, 1), "-", " "), "'", " "))
                nouveau = ""
                For i = LBound(mot) To UBound(mot)
                    If Len(mot(i)) > 4 Then nouveau = nouveau & " " & mot(i)
                Next i
                cel(j, 1) = Trim(nouveau)
            End If
        Next
        With .Range("A1").Resize(dl, 1) 'on charge les mots dans la feuille en colonne A
            .Value = cel
            .Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlNo 'on trie
        End With
    End With
End Sub

Bonjour,

Je t'offre une solution avec l'utilisation de Power Query.

Le tableau source est chargé dans Power Query (onglet données, requêtes et connexions). Les étapes appliquées se trouvent à droite de l'écran. (j'ai supprimé les #value qui posaient problème).

Lorsque la source évolue, un simple clic droit sur le tableau retourné par Power Query, puis actualiser tout.

A ta disposition si besoin de plus d'explications.

PS : Je ne sais pas s'il y a possibilité d'utiliser Power Query sur MAC.

12exemple-forum.xlsx (97.00 Ko)
Rechercher des sujets similaires à "suppression automatique mots liste"