Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Extraire de mots d'une cellule

thval

XLDnaute Nouveau
Bonjour
Quel serait la formule pour extraire d'une cellule tous les mot d'une phrase de plus de 3 lettres ?
Par exemple, en A1 j'ai la phrase "travaux sur le pont provisoire de l'Aisne"
Je voudrais en B1 avoir que les mots de plus de 3 lettres, c'est à dire "travaux pont provisoire Aisne"
Est ce faisable ?
Sachant que j'ai des phrase de A1 à A1000 et que je voudrais retrouver tout cela de B1 à B1000 évidemment.
Merci pour votre aide.
 

Staple1600

XLDnaute Barbatruc
Bonjour

Une solution avec une fonction VBA personnalisée
Code:
Function TROISCAR(s As String) As String
Dim v
For Each v In Split(s, " ")
TROISCAR = TROISCAR & " " & Left(v, 3)
Next v
TROISCAR = Mid(TROISCAR, 2)
End Function


EDITION: Houps, j'ai mal compris la question
Ici ma fonction extrait les 3 premiers caractères de chaque mot.
 

thval

XLDnaute Nouveau
Bonjour
Cela extrait 3 lettres par mots, ce n'est pas ce que je recherche. Je veux extraire les mots de plus de 3 lettres.
Merci quand meme.
 

Staple1600

XLDnaute Barbatruc
Re

Celle-ci devrait mieux correspondre au besoin
Code:
Function TROISCAR(s As String) As String
Dim v
For Each v In Split(s, " ")
If Len(v) > 3 Then
TROISCAR = TROISCAR & " " & v
End If
Next v
TROISCAR = Mid(TROISCAR, 2)
End Function

PS: Tu avais lu l'EDITION de mon premier message ?
 

thval

XLDnaute Nouveau
Ok
Ou dois je mettre cela pour que cela fonctionne pour toutes les cellules de B1 à B1000 par exemple ?
Merci
 

Staple1600

XLDnaute Barbatruc
Bonjour @djidji59430

Chouette formule !

je me permets d'ajouter ceci
=JOINDRE.TEXTE(" ";VRAI;FILTRE(SI(NBCAR(FRACTIONNER.TEXTE(A1;" "))>3;FRACTIONNER.TEXTE(A1;" "));SI(NBCAR(FRACTIONNER.TEXTE(A1;" "))>3;FRACTIONNER.TEXTE(A1;" "))<>FAUX))

@thval
la formule ne fonctionne qu'avec Office 365

Pour la solution par macro, il suffit de recopier la formule vers le bas
(comme sur la copie d'écran du message#2)
La formule est au départ en B1

NB: Le code VBA doit être au préalable copié dans un module standard.
(Depuis Excel ALT+F11 -> Insertion/Module )
 

thval

XLDnaute Nouveau
OKAY, pour le VBA. J'ai compris
Ca marche parfaitement.
Merci pour votre aide
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…