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

Extraction de chaine en colonne

10 réponses
Avatar
Sylian
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne
différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la
première ligne (CYP2, CYPKKK, GPX2) car les suivantes dans la même
cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié
et en plus ça les mets en ligne et non pas en colonne. HELP !

10 réponses

Avatar
Tatanka
Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes dans
la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non pas en
colonne. HELP !


Avatar
Tatanka
Toujours en supposant que tes données sont en A1,
cette macro te permettra d'extraire tes données
sur une colonne à partir de la cellule active.
Un exemple à cette adresse :
http://cjoint.com/?emmNJQd5gy

Sub Extraire()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
i = ActiveCell.Row - 1
j = ActiveCell.Column
For k = 0 To UBound(ts)
i = i + 1
Cells(i, j) = ts(k)
Next k
End Sub

Serge


"Tatanka" a écrit dans le message de news:
Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes dans
la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non pas en
colonne. HELP !






Avatar
Sylian
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais
Merci beaucoup ! Quand j'ai essayé ça fonctionne mais ça me rajoute
une ligne vide entre les données de la 1ère ligne et la seconde. Mais
bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes dans
la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non pas en
colonne. HELP !






Avatar
Tatanka
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne mais ça
me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes dans
la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non pas en
colonne. HELP !







Avatar
Tatanka
Si tu ne veux pas enlever les virgules avant les sauts de ligne,
remplace :
t = Replace([a1], Chr(10), ",")
par :
t = Replace([a1], "," & Chr(10), ",")

Serge


"Tatanka" a écrit dans le message de news:
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne mais ça
me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes
dans la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non pas
en colonne. HELP !










Avatar
Sylian
Excellent ! Je n'ai que mes valeurs maintenant ta formule marche à
merveille ! Merci !

Oserai-je abuser ?
Comme j'ai plein de cellule dans ce cas qu'il faut que j'explose en
colonne (grace à ta formule), j'ai remplacé [a1] par Selection afin que
la macro traite la cellule que j'ai sélectionner. Maintenant j'aimerai
que cette même macro me demande où je veux mettre mon résultat (choisir
une cellule dans laquelle il commence puis il continue l'extraction en
dessous). C'est jouable ?

Perso je galère entre les refedit d'un userforme ou un truc comme :
Set madestination = Application.InputBox("Selectionnez", "Cellule", , ,
, , , 8) ... Enfin je ne sais pas comment intégrer et utiliser tout ça !

Merci mille fois d'avance !


Si tu ne veux pas enlever les virgules avant les sauts de ligne,
remplace :
t = Replace([a1], Chr(10), ",")
par :
t = Replace([a1], "," & Chr(10), ",")

Serge


"Tatanka" a écrit dans le message de news:
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne mais ça
me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes
dans la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non pas
en colonne. HELP !












Avatar
Tatanka
Essaie ceci :

Sub Extraire()
For Each c In Selection
Set ici = Application.InputBox(Prompt:="Sélectionnez une cellule", Type:=8)
t = Replace(c, Chr(10), ",")
ts = Split(t, ",")
i = ici.Row - 1
j = ici.Column
For k = 0 To UBound(ts)
i = i + 1
Cells(i, j) = ts(k)
Next k
Next c
End Sub

Ça te convient ?

Serge


"Sylian" a écrit dans le message de news: 48009cfb$0$30367$
Excellent ! Je n'ai que mes valeurs maintenant ta formule marche à merveille ! Merci !

Oserai-je abuser ?
Comme j'ai plein de cellule dans ce cas qu'il faut que j'explose en colonne (grace à ta formule), j'ai remplacé [a1] par Selection
afin que la macro traite la cellule que j'ai sélectionner. Maintenant j'aimerai que cette même macro me demande où je veux mettre
mon résultat (choisir une cellule dans laquelle il commence puis il continue l'extraction en dessous). C'est jouable ?

Perso je galère entre les refedit d'un userforme ou un truc comme :
Set madestination = Application.InputBox("Selectionnez", "Cellule", , , , , , 8) ... Enfin je ne sais pas comment intégrer et
utiliser tout ça !

Merci mille fois d'avance !


Si tu ne veux pas enlever les virgules avant les sauts de ligne,
remplace :
t = Replace([a1], Chr(10), ",")
par :
t = Replace([a1], "," & Chr(10), ",")

Serge


"Tatanka" a écrit dans le message de news:
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne mais
ça me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style
:

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes
dans la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non
pas en colonne. HELP !













Avatar
Sylian
J'ai remplacé t = Replace(c, Chr(10), ",") par t = Replace(c,, "," &
Chr(10), ",") comme tu me l'avais conseillé avant et ... c'est GENIAL !

Mille merci Serge, je ne t'embête plus !
Ce Forum de discutions est vraiment magique.

---------------------------------------------------------

Essaie ceci :

Sub Extraire()
For Each c In Selection
Set ici = Application.InputBox(Prompt:="Sélectionnez une cellule", Type:=8)
t = Replace(c, Chr(10), ",")
ts = Split(t, ",")
i = ici.Row - 1
j = ici.Column
For k = 0 To UBound(ts)
i = i + 1
Cells(i, j) = ts(k)
Next k
Next c
End Sub

Ça te convient ?

Serge


"Sylian" a écrit dans le message de news: 48009cfb$0$30367$
Excellent ! Je n'ai que mes valeurs maintenant ta formule marche à merveille ! Merci !

Oserai-je abuser ?
Comme j'ai plein de cellule dans ce cas qu'il faut que j'explose en colonne (grace à ta formule), j'ai remplacé [a1] par Selection
afin que la macro traite la cellule que j'ai sélectionner. Maintenant j'aimerai que cette même macro me demande où je veux mettre
mon résultat (choisir une cellule dans laquelle il commence puis il continue l'extraction en dessous). C'est jouable ?

Perso je galère entre les refedit d'un userforme ou un truc comme :
Set madestination = Application.InputBox("Selectionnez", "Cellule", , , , , , 8) ... Enfin je ne sais pas comment intégrer et
utiliser tout ça !

Merci mille fois d'avance !


Si tu ne veux pas enlever les virgules avant les sauts de ligne,
remplace :
t = Replace([a1], Chr(10), ",")
par :
t = Replace([a1], "," & Chr(10), ",")

Serge


"Tatanka" a écrit dans le message de news:
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne mais
ça me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction) style
:

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes
dans la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non
pas en colonne. HELP !















Avatar
Tatanka
Salut Sylvian,

M'est avis que tu vas préférer cette version :

Sub Extraire()
Dim c As Range, ici As Range
Dim t$
Dim i%, j%, k%, s%
On Error GoTo FIN
Set ici = Application.InputBox(Prompt:="Sélectionnez une cellule.", Type:=8)
i = ici.Row - 1
j = ici.Column
s = s + i
For Each c In Selection
t = Replace(c, "," & Chr(10), ",")
ts = Split(t, ",")
For k = 0 To UBound(ts)
s = s + 1
Cells(s, j) = ts(k)
Next k
Next c
FIN:
End Sub

Serge


"Sylian" a écrit dans le message de news: 4800a982$0$7177$
J'ai remplacé t = Replace(c, Chr(10), ",") par t = Replace(c,, "," & Chr(10), ",") comme tu me l'avais conseillé avant et ...
c'est GENIAL !

Mille merci Serge, je ne t'embête plus !
Ce Forum de discutions est vraiment magique.

---------------------------------------------------------

Essaie ceci :

Sub Extraire()
For Each c In Selection
Set ici = Application.InputBox(Prompt:="Sélectionnez une cellule", Type:=8)
t = Replace(c, Chr(10), ",")
ts = Split(t, ",")
i = ici.Row - 1
j = ici.Column
For k = 0 To UBound(ts)
i = i + 1
Cells(i, j) = ts(k)
Next k
Next c
End Sub

Ça te convient ?

Serge


"Sylian" a écrit dans le message de news: 48009cfb$0$30367$
Excellent ! Je n'ai que mes valeurs maintenant ta formule marche à merveille ! Merci !

Oserai-je abuser ?
Comme j'ai plein de cellule dans ce cas qu'il faut que j'explose en colonne (grace à ta formule), j'ai remplacé [a1] par
Selection afin que la macro traite la cellule que j'ai sélectionner. Maintenant j'aimerai que cette même macro me demande où je
veux mettre mon résultat (choisir une cellule dans laquelle il commence puis il continue l'extraction en dessous). C'est jouable
?

Perso je galère entre les refedit d'un userforme ou un truc comme :
Set madestination = Application.InputBox("Selectionnez", "Cellule", , , , , , 8) ... Enfin je ne sais pas comment intégrer et
utiliser tout ça !

Merci mille fois d'avance !


Si tu ne veux pas enlever les virgules avant les sauts de ligne,
remplace :
t = Replace([a1], Chr(10), ",")
par :
t = Replace([a1], "," & Chr(10), ",")

Serge


"Tatanka" a écrit dans le message de news:
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne
mais ça me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction)
style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes
dans la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non
pas en colonne. HELP !

















Avatar
Sylian
En effet cette version est encore plus clair et plus détaillée. Encore
merci pour ton aide, ton temps et ta patience

Salut Sylvian,

M'est avis que tu vas préférer cette version :

Sub Extraire()
Dim c As Range, ici As Range
Dim t$
Dim i%, j%, k%, s%
On Error GoTo FIN
Set ici = Application.InputBox(Prompt:="Sélectionnez une cellule.", Type:=8)
i = ici.Row - 1
j = ici.Column
s = s + i
For Each c In Selection
t = Replace(c, "," & Chr(10), ",")
ts = Split(t, ",")
For k = 0 To UBound(ts)
s = s + 1
Cells(s, j) = ts(k)
Next k
Next c
FIN:
End Sub

Serge


"Sylian" a écrit dans le message de news: 4800a982$0$7177$
J'ai remplacé t = Replace(c, Chr(10), ",") par t = Replace(c,, "," & Chr(10), ",") comme tu me l'avais conseillé avant et ...
c'est GENIAL !

Mille merci Serge, je ne t'embête plus !
Ce Forum de discutions est vraiment magique.

---------------------------------------------------------

Essaie ceci :

Sub Extraire()
For Each c In Selection
Set ici = Application.InputBox(Prompt:="Sélectionnez une cellule", Type:=8)
t = Replace(c, Chr(10), ",")
ts = Split(t, ",")
i = ici.Row - 1
j = ici.Column
For k = 0 To UBound(ts)
i = i + 1
Cells(i, j) = ts(k)
Next k
Next c
End Sub

Ça te convient ?

Serge


"Sylian" a écrit dans le message de news: 48009cfb$0$30367$
Excellent ! Je n'ai que mes valeurs maintenant ta formule marche à merveille ! Merci !

Oserai-je abuser ?
Comme j'ai plein de cellule dans ce cas qu'il faut que j'explose en colonne (grace à ta formule), j'ai remplacé [a1] par
Selection afin que la macro traite la cellule que j'ai sélectionner. Maintenant j'aimerai que cette même macro me demande où je
veux mettre mon résultat (choisir une cellule dans laquelle il commence puis il continue l'extraction en dessous). C'est jouable
?

Perso je galère entre les refedit d'un userforme ou un truc comme :
Set madestination = Application.InputBox("Selectionnez", "Cellule", , , , , , 8) ... Enfin je ne sais pas comment intégrer et
utiliser tout ça !

Merci mille fois d'avance !


Si tu ne veux pas enlever les virgules avant les sauts de ligne,
remplace :
t = Replace([a1], Chr(10), ",")
par :
t = Replace([a1], "," & Chr(10), ",")

Serge


"Tatanka" a écrit dans le message de news:
C'est probablement qu'il y a une virgule juste avant tes sauts de ligne.
Si tu enlèves les virgules à la fin de chaque ligne, ça devrait aller.

Serge

"Sylian" a écrit dans le message de news: 480093ba$0$20724$
C'est extra comme petite formule ! Je n'y comprends pas grand chose mais Merci beaucoup ! Quand j'ai essayé ça fonctionne
mais ça me rajoute une ligne vide entre les données de la 1ère ligne et la seconde. Mais bon ...

En tout cas merci beaucoup pour l'aide !



Salut Sylian,

Supposons que la cellule A1 contient des données
séparées par des virgules et des retours à la ligne.
Si tu veux extraire chaque donnée dans la colonne B
à partir de la ligne 2, essaie cette macro :

Sub Extraire_En_Colonnes()
t = Replace([a1], Chr(10), ",")
ts = Split(t, ",")
k = 1
For i = 0 To UBound(ts)
k = k + 1
Cells(k, 2) = ts(i)
Next i
End Sub

Serge

"Sylian" a écrit dans le message de news: 48007bd8$0$24597$
Bonjour et merci d'avance pour votre aide.



Je possède plusieurs valeurs dans une seule cellule.

exemple dans une cellule : CYP2, CYPKKK, GPX2,
CYP34a, SULT3A7

Je voudrais les extraire en colonne avec chaque texte sur une ligne différente et sans les virgules(créer une fonction)
style :

CYP2
CYPKKKK
GPX2
CYP34a
SULT3A7

J'ai essayé "Données / Convertir" mais cette fonction ne prend que la première ligne (CYP2, CYPKKK, GPX2) car les suivantes
dans la même cellule ont un retour à la ligne. :( Bref, ca fonctionne qu'à moitié et en plus ça les mets en ligne et non
pas en colonne. HELP !