Décomposition de string - macro

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

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. 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.
    1. 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.
    2. Merci beaucoup, je vais essayer d'implanter votre solution. Je vous fait un retour dans la journée.