Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 09h55   #1
Invité de passage
 
Inscription : mars 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 2
Points : 1
Points : 1
Par défaut formule entrecouper phrase en mot ne fonctionne pas.

Bonjour

Afin de mettre en conformité avec l'envoi automatisé de la poste mon fichier d'adresse, j'ai fait une formule me permettant de couper une phrase au dernier mot avant le 38eme caractère.
Petite précision, par souci de simplicité et sécurité sur les ordinateurs utilisateurs de cette liste, je ne souhaite pas passer par une macro.

Voici la formule utilisée :
=STXT(D2;1;SI(NBCAR(D2>38);TROUVE("µ";SUBSTITUE(STXT(D2;1;38);" ";"µ";NBCAR(STXT(D2;1;38))-NBCAR(SUBSTITUE(STXT(D2;1;38);" ";""))));NBCAR(D2)))

Petite explication :
adresse source en D2

la formule TROUVE("µ";SUBSTITUE(STXT(D2;1;38);" ";"µ";NBCAR(STXT(D2;1;38))-NBCAR(SUBSTITUE(STXT(D2;1;38);" ";""))))
trouvé sur le net me permet d'obtenir la position du dernier espace avant le 38ème caractère. Testé, elle fonctionne seule.

Je fais donc un renvoi de chaine contenant X caractère à partir du premier
OU le X correspond à une condition qui dit que si la chaine fait plus de 38 caractère, je récupère la position du dernier espace et si elle fait moins elle me retourne la chaine dans son entier.
Je pense que ma logique est assez bonne, seulement dans l'état ma fonction me retourne toujours la chaine jusqu'au dernier espace, elle ne prend pas en compte ma condition.

Hors si je fais le même test sans la grosse formule trouve (), alors la condition est bien prise en compte.

Je suis un peu perdu, si quelqu'un à une idée... Je suis grand preneur.
kataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 12h05   #2
Membre confirmé
 
Inscription : mai 2010
Messages : 200
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 200
Points : 278
Points : 278
Bonjour,

Juste une parenthèse mal placée :
Citation:
=STXT(D2;1;SI(NBCAR(D2)>38;TROUVE("µ";SUBSTITUE(STXT(D2;1;38);" ";"µ";NBCAR(STXT(D2;1;38))-NBCAR(SUBSTITUE(STXT(D2;1;38);" ";""))));NBCAR(D2)))

La parenthèse fermante de NBCAR était placé après >38 au lieu de avant.
GerardCalc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 14h02   #3
Invité de passage
 
Inscription : mars 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 2
Points : 1
Points : 1
Merci bcp, et pourtant je l'ai relu une bonne 10 dizaines de fois, réécrite également une bonne dizaine de fois.
Et à chaque fois j'ai refais l'erreur.

En tout cas merci pour tout.
kataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h44.


 
 
 
 
Partenaires

Hébergement Web