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