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 Impliqué
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
Supporter XLD
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

Réponses
9
Affichages
418

Statistiques des forums

Discussions
311 740
Messages
2 082 049
Membres
101 882
dernier inscrit
XaK_