XL 2021 traitement de texte

  • Initiateur de la discussion Initiateur de la discussion chingilou
  • 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 !

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)));"...
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

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
 
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

L'inconvénient de la fonction EPURAGE (que j'avais pensé à utiliser) c'est qu'elle supprime carrément tous les caractères de contrôle donc on n'a plus de séparateur entre le dernier mot de la ligne n et le premier mot de la ligne non vide qui suit ...
 
- 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
4
Affichages
166
Retour