Décomposition de string - macro
philip.dang
Messages postés
37
Statut
Membre
-
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
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:
- Décomposition de string - macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Convertir chiffre en lettre excel sans macro - Forum Microsoft Office
1 réponse
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.
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.
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.