XL 2021 traitement de texte

chingilou

XLDnaute Junior
bonsoir tout le monde
je voudrais si possible par formule au mieux ou par vba au pire epurer une rangée de moins de 200 lignes de textes en retirant les espaces superflues au début à la fin et au mileu du texte et aussi (c la mon probleme que je ne sais même pas comment refléchir a la solution) de mettre le texte en nompropre (majuscule de la 1er lettre ) si seulement le mot (le texte d'une cellule contient plus d'un mot 😁) contient plus de 3 lettres)
merci
 
Solution
Bonne nuit les noctambules ! bonne nuit @chingilou
Avec EXCEL 2021

en retirant les espaces superflues au début à la fin et au mileu du texte
Ça se fait avec la fonction SUPPRESPACE(" mon texte b ")


mettre le texte en nompropre (majuscule de la 1er lettre ) si seulement le mot (le texte d'une cellule contient plus d'un mot 😁) contient plus de 3 lettres)
Cette formule fait le boulot :
VB:
=JOINDRE.TEXTE(" ";VRAI;LET(Chaîne;" "&SUPPRESPACE(B4);Nb;NBCAR(Chaîne)-NBCAR(SUBSTITUE(Chaîne;" ";""));Marquage;SUBSTITUE(SUBSTITUE(Chaîne;" ";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;Nb;1)));"...

AtTheOne

XLDnaute Accro
Supporter XLD
Bonne nuit les noctambules ! bonne nuit @chingilou
Avec EXCEL 2021

en retirant les espaces superflues au début à la fin et au mileu du texte
Ça se fait avec la fonction SUPPRESPACE(" mon texte b ")


mettre le texte en nompropre (majuscule de la 1er lettre ) si seulement le mot (le texte d'une cellule contient plus d'un mot 😁) contient plus de 3 lettres)
Cette formule fait le boulot :
VB:
=JOINDRE.TEXTE(" ";VRAI;LET(Chaîne;" "&SUPPRESPACE(B4);Nb;NBCAR(Chaîne)-NBCAR(SUBSTITUE(Chaîne;" ";""));Marquage;SUBSTITUE(SUBSTITUE(Chaîne;" ";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;Nb;1)));" ";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;Nb;1)));Liste;GAUCHE(STXT(Marquage;TROUVE("¯";Marquage)+1;NBCAR(Chaîne));TROUVE("¯";STXT(Marquage;TROUVE("¯";Marquage)+1;NBCAR(Chaîne))&"¯")-1);SI(NBCAR(Liste)>3;NOMPROPRE(Liste);Liste)))

Voir l'exemple en pièce jointe
 

Pièces jointes

  • Exemple.xlsx
    11.6 KB · Affichages: 3

chingilou

XLDnaute Junior
une cellule peut contenir un texte à plusieurs lignes j'importe ces textes pour les traiter et ca serai bien d'automatiser le traitement
c'est vrai que je dois donner un fichier exemple désolé mapomme désole

merci pour la formule attheone parfaite
 

mapomme

XLDnaute Barbatruc
Re,

Avant de me coucher, une formule assez courte qui doit faire le travail (et qui était prête 😜)
Avec l'exemple de @AtTheOne :
VB:
=LET(tablo;FRACTIONNER.TEXTE([@[Texte Brut]];" ");SIERREUR(JOINDRE.TEXTE(" ";VRAI;SI(NBCAR(tablo)>3;NOMPROPRE(tablo);tablo));""))

Allez bonne nuit à tous.
 

Pièces jointes

  • chingilou- formater texte- v1.xlsx
    11.4 KB · Affichages: 7

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 134
Messages
2 116 612
Membres
112 810
dernier inscrit
raphounet