[EXCEL] suppression de caractères
Résolu
6FoursPlaya83
-
Le Pingou Messages postés 12276 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12276 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaiterai pouvoir supprimer tout les mots de moins de XXX lettres dans une cellule de texte
Ex: Cellule avant traitement " Salut ça va c'est moi"
Cellule après traitement (si XXX=3) : "Salut c'est moi"
Merci par avance pour votre aide
Cordialement,
greg
je souhaiterai pouvoir supprimer tout les mots de moins de XXX lettres dans une cellule de texte
Ex: Cellule avant traitement " Salut ça va c'est moi"
Cellule après traitement (si XXX=3) : "Salut c'est moi"
Merci par avance pour votre aide
Cordialement,
greg
5 réponses
-
bonjour
fonction personnalisée: ne garde que les mots dans la cellule (texto) de plus de XXX lettres (seuil)
actuellement, elle supprime les doublons de mots: me dire si on veut les garder
Option Explicit Function extraire_mots(texto As String, seuil As Byte) 'Michel_M mai 2006 Dim reg As Object Dim texte As Object Dim mot As Object Dim coll As Collection Dim cptr As Byte 'instancie Set coll = New Collection Set reg = CreateObject("vbscript.regexp") ' on travaille sur tout le texte reg.Global = True 'définition du modèle : on cherche des mots d'au moins N caractères {seuil, infini } avec les accentués reg.Pattern = "(\b[a-zA-Z0-9çàâäéèêëïîôöùû]{" & seuil & ",})" 'exécution de la recherche Set texte = reg.Execute(texto) 'collecte les mots sans doublons For Each mot In texte On Error Resume Next coll.Add mot.Value, mot.Value On Error GoTo 0 Next mot 'extrait les mots de longueur >= seuil For cptr = 1 To coll.Count extraire_mots = extraire_mots & coll(cptr) & " " Next Set reg = Nothing Set coll = Nothing End Function -
Bonjour,
Au passage, combien de cellules à traiter ... ?
-
Bonjour,
Je me fais une copie pour étudier cette superbe procédure.
Merci.
-
Bonjour Le Pingou
Merci! si tu as le temps essaies le code conservant les doublons (je dois partir)
ce code avait été réalisé à partir de ce tuto:
https://cafeine.developpez.com/access/tutoriel/regexp/ -
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour michel_m,
Je pense que je commence à comprendre le fonctionnement, c'est super intéressant, alors si on ajoute le caractère (`) apostrophe au motif (Pattern) soit :reg.Pattern = "(\b[a-zA-Z0-9çàâäéèêëïîôöùû']{" & seuil & ",})"
Pour l'exemple " Salut ça va c'est moi"
on obtiendra " Salut c'est moi"
et non pas " Salut est moi"
A une prochaine