Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraire contenu séparé par ";" et lister dans une colonne

3 réponses
Avatar
jip
Bonjour
Soit un tableau de ce type

A
1 E 843-918 ; E 921-961 ; E 973-974
2 E 975-1009 ; E 1014-1026
3 E 1027-1053
etc
tout dans la colonne A

Est-il possible d'extraire le contenu de type "E xxxx-yyyy" (1 =E0 4 x et y=
) entre chaque ";" (parfois une seule donn=E9e donc pas de ";") et de les l=
ister dans une seule colonne (donc pas de "convertir" ?)
A
1 E 843-918
2 E 921-961
3 E 973-974
etc

Merci d'avance.
Cordialement

3 réponses

Avatar
Jacquouille
Bonjour

Première réflexion : si la col A est complètement remplie avec ces données,
il sera très malaisé d' ajouter d'autres données provenant de la séparation
(.)
Deuxième: "Convertir" convient à merveille. dès que c'est fait, il suffit de
recopier la col B sous la col A, puis la colC

Et cela devrait aller, sauf si colA est complète dès le départ....

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"jip" a écrit dans le message de groupe de discussion :


Bonjour
Soit un tableau de ce type

A
1 E 843-918 ; E 921-961 ; E 973-974
2 E 975-1009 ; E 1014-1026
3 E 1027-1053
etc
tout dans la colonne A

Est-il possible d'extraire le contenu de type "E xxxx-yyyy" (1 à 4 x et y)
entre chaque ";" (parfois une seule donnée donc pas de ";") et de les lister
dans une seule colonne (donc pas de "convertir" ?)
A
1 E 843-918
2 E 921-961
3 E 973-974
etc

Merci d'avance.
Cordialement


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
HB
Bonsoir,

Compte tenu des contraintes décrites je suppose que les nouvelles
données vont sur une autre feuille, ou alors dans la colonne B
sinon cela va un peu compliquer la manip.

Les possibilités des formules sont vastes
mais une petite macros simple est faisable
en utilisant la fonction Split ...

Voici, par exemple, la petite macro
qui fabrique la liste voulue dans la colonne B.

Sub truc()
R = 1
N = WorksheetFunction.CountA(Columns(1))
For I = 1 To N
A = Cells(I, 1).Value
G = Split(A, ";")
For J = 0 To UBound(G)
Cells(J + R, 2).Value = G(J)
Next
R = R + UBound(G) + 1
Next
End Sub


Cordialement,

HB


Le 01/04/2016 16:05, jip a écrit :
Bonjour
Soit un tableau de ce type

A
1 E 843-918 ; E 921-961 ; E 973-974
2 E 975-1009 ; E 1014-1026
3 E 1027-1053
etc
tout dans la colonne A

Est-il possible d'extraire le contenu de type "E xxxx-yyyy" (1 à 4 x et y) entre chaque ";" (parfois une seule donnée donc pas de ";") et de les lister dans une seule colonne (donc pas de "convertir" ?)
A
1 E 843-918
2 E 921-961
3 E 973-974
etc

Merci d'avance.
Cordialement





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
jip

Voici, par exemple, la petite macro
qui fabrique la liste voulue dans la colonne B.

Sub truc()
R = 1
N = WorksheetFunction.CountA(Columns(1))
For I = 1 To N
A = Cells(I, 1).Value
G = Split(A, ";")
For J = 0 To UBound(G)
Cells(J + R, 2).Value = G(J)
Next
R = R + UBound(G) + 1
Next
End Sub


Cordialement,

HB




Merci cela fonctionne très bien.