[Excel]Séparer des données
Résolu
Foreverson
Messages postés
231
Date d'inscription
Statut
Membre
Dernière intervention
-
Foreverson Messages postés 231 Date d'inscription Statut Membre Dernière intervention -
Foreverson Messages postés 231 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je souhaite faire une petite macro, je pense avoir besoin d'utiliser les expressions régulières mais je ne sais pas comment ça marche avec Excel. Voici mon problème :
Soit wi un mot d'au moins 3 lettres. En A1, j'ai une suite comme celle-ci :
w1(1|2|3)(1|2|3)(0|1)w2(1|2|3)(1|2|3)(0|1) etc. jusqu'à w10.
Je souhaiterai obtenir le résultat suivant
pour tous mes w.
Dans un 1er temps, mon idée serait de parcourir le texte de la cellule A1, et dès que l'on trouve un chiffre (1|2|3), on avance de 2 caractères, on copie le texte depuis ce caractère jusqu'à la fin du texte que l'on coupe/colle en A2 et ainsi de suite.
2 détails :
-je ne connais pas bien le code VBA
-je ne sais pas utiliser les Regex dans Excel
Toute autre idée sera bien entendu la bienvenue.
Merci d'avance !
je souhaite faire une petite macro, je pense avoir besoin d'utiliser les expressions régulières mais je ne sais pas comment ça marche avec Excel. Voici mon problème :
Soit wi un mot d'au moins 3 lettres. En A1, j'ai une suite comme celle-ci :
w1(1|2|3)(1|2|3)(0|1)w2(1|2|3)(1|2|3)(0|1) etc. jusqu'à w10.
Je souhaiterai obtenir le résultat suivant
Colonne A Colonne B Colonne C Colonne D w1 (1|2|3) (1|2|3) (0|1) w2 (1|2|3) (1|2|3) (0|1)
pour tous mes w.
Dans un 1er temps, mon idée serait de parcourir le texte de la cellule A1, et dès que l'on trouve un chiffre (1|2|3), on avance de 2 caractères, on copie le texte depuis ce caractère jusqu'à la fin du texte que l'on coupe/colle en A2 et ainsi de suite.
2 détails :
-je ne connais pas bien le code VBA
-je ne sais pas utiliser les Regex dans Excel
Toute autre idée sera bien entendu la bienvenue.
Merci d'avance !
A voir également:
- [Excel]Séparer des données
- Trier des données excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
Bonjour,
J'ai une solution qui peut paraître un peu tordue :
Dans rechercher et remplacer tu remplace tout les ( par ,( ensuite tu sélectionnes toutes tes données, tu vas dans données > convertir , délimité et tu selectionne virgule et tu fais terminer.
ça devrai fonctionner si j'ai pas fait d'erreur.
Wake me, when you need me ...
J'ai une solution qui peut paraître un peu tordue :
Dans rechercher et remplacer tu remplace tout les ( par ,( ensuite tu sélectionnes toutes tes données, tu vas dans données > convertir , délimité et tu selectionne virgule et tu fais terminer.
ça devrai fonctionner si j'ai pas fait d'erreur.
Wake me, when you need me ...
Je vois ce que tu veux dire mais mes parenthèses sont fictives, c'est une écriture Regex, elles n'existent pas vraiment, elles sont là pour illustrer un "groupe".
Dans A1, je peux avoir une chaîne du style toto111titi210tutu330 et le but est donc d'obtenir, dans un premier temps
toto111
titi210
tutu330
puis dans un second temps
toto 1 1 1
titi 2 1 0
tutu 3 3 0
ce qui devrait poser moins de problèmes.
Merci de ta réponse, dans l'idée, je suis d'accord avec toi. Eventuellement, je pourrai appliquer cela, remplacer 0 par 0; 1 par 1; etc. mais ça fait faire pas mal de remplacements sans compter qu'il est possible d'avoir quelques cas particuliers dans lesquels ça ne marchera pas.
Je garde cette solution sous le coude, mais si d'autres ont des idées, n'hésitez pas.
Dans A1, je peux avoir une chaîne du style toto111titi210tutu330 et le but est donc d'obtenir, dans un premier temps
toto111
titi210
tutu330
puis dans un second temps
toto 1 1 1
titi 2 1 0
tutu 3 3 0
ce qui devrait poser moins de problèmes.
Merci de ta réponse, dans l'idée, je suis d'accord avec toi. Eventuellement, je pourrai appliquer cela, remplacer 0 par 0; 1 par 1; etc. mais ça fait faire pas mal de remplacements sans compter qu'il est possible d'avoir quelques cas particuliers dans lesquels ça ne marchera pas.
Je garde cette solution sous le coude, mais si d'autres ont des idées, n'hésitez pas.
Bonjour
avec un chouia de VBA
restitution à partir de A10 à adapter éventuellement
avec un chouia de VBA
restitution à partir de A10 à adapter éventuellement
Sub separer_par_wx() Dim lig As Byte, cptr As Byte Dim tampon() As String tampon = Split(Range("A1"), "w") lig = 10 For cptr = 1 To UBound(tampon) texto = "w" & tampon(cptr) Cells(lig, 1) = texto Cells(lig, 1).Parse "[**][**************][*****]", Cells(lig, 1) lig = lig + 1 Next End Sub