XL 2021 Extraire de mots d'une cellule

  • Initiateur de la discussion Initiateur de la discussion thval
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
TROISCAR.PNG


EDITION: Houps, j'ai mal compris la question
Ici ma fonction extrait les 3 premiers caractères de chaque mot.
 
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
Regarde la pièce jointe 1180041
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.
 
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 ? 🙄
 
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 ? 🙄
Ok
Ou dois je mettre cela pour que cela fonctionne pour toutes les cellules de B1 à B1000 par exemple ?
Merci
 
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 )
 
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 )
OKAY, pour le VBA. J'ai compris
Ca marche parfaitement.
Merci pour votre aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
471
Réponses
17
Affichages
465
Retour