Décomposition de string - macro

philip.dang Messages postés 37 Statut Membre -  
philip.dang Messages postés 37 Statut Membre -
Bonjour,

J'ai fait pas mal de recherche sur mon problème mais je n'en ai trouvé aucune vraiment élégante.

J'ai une colonne rempli de groupes nominaux :
exemple : colonne AA : bonjour; apprendre à voler, destin d'Alain, à l'arrière, manger

Je désire faire une colonne par mots : le résultat serait
AA : bonjour, apprendre, destin, à, manger
BB : (cellule vide) , à, d', l', (cellule vide)
CC : (cellule vide), voler, Alain, arrière, (cellule vide)

Il me faudrait une macro qui puisse faire ça. En gros, je voudrais décomposer le mot lorsqu'on tombe sur un espace " ", un "d'" ou un "l'".

Avez-vous des solutions ou des pistes de recherche?
Merci

A voir également:

1 réponse

tchernosplif Messages postés 714 Statut Membre 248
 
Bonjour,

Je vous propose une solution sans macro (jusqu'à 3 espaces), l'exemple ne prends pas en compte les ' , mais l'idée est là.

cellule A1:
apprendre à lire correctement

cellule B1:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;" ";"$";1);" ";"£";1);" ";"%";1)
renvoie: apprendre$à£lire%correctement

cellule C1:
=STXT(B1;1;CHERCHE("$";B1;1)-1)
renvoie: apprendre

cellule D1:
=STXT(B1;CHERCHE("$";B1;1)+1;CHERCHE("£";B1;1)-(CHERCHE("$";B1;1)+1))
renvoie: à

cellule E1:
=STXT(B1;CHERCHE("£";B1;1)+1;CHERCHE("%";B1;1)-(CHERCHE("£";B1;1)+1))
renvoie: lire

cellule F1:
=DROITE(B1;NBCAR(B1)-CHERCHE("%";B1;1))
renvoie: correctement

NB: si il y a moins de 4 mots, il faut rajouter un espace à la fin)

J'essaierai de vous liver une solution complète, si personne ne vous aide avec une macro, mais je manque de temps.
0
tchernosplif Messages postés 714 Statut Membre 248
 
Bonsoir,

Voici un fichier d'exemple plus abouti, sans macro, en prenant en compte les apostrophes ' (ceux avec un espace devant ou derrière ^^) et sans limitation du nombre de mots.

http://www.cijoint.fr/cjlink.php?file=cj201107/cij74l3FJI.xls

SI vous avez besoin de plus de mots, vous pouvez avec la même logique copier/coller les colonnes vertes (4 par 4) et la "colonne intermédiaire" vers la droite .

NB: certaines colonnes sont volontairement cachées, certaines formules pourraient être simplifiées, avis aux amateurs.
0
philip.dang Messages postés 37 Statut Membre 1
 
Merci beaucoup, je vais essayer d'implanter votre solution. Je vous fait un retour dans la journée.
0