OVH Cloud OVH Cloud

Transformer 1 colonne en plusieures lignes

6 réponses
Avatar
HRV
Bonjours à tous,

Je possède actuellement un problème entre l’acquisition de donnée et le
traitement de celles-ci. Les données brutes sont placées dans une seule
colonne, mais le programme de traitement nécessite une mise en page dans
un tableau sur 8 colonnes. De plus le tableau doit être lu dans le sens
de la lecture (droite à gauche). cfr exemple ci dessous, mais avec 3000
points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L

6 réponses

Avatar
michdenis
Bonjour HRV,

En supposant que ta plage débute en A1 vers Ax

'-----------------------------------
Sub EnLignes()
Dim derlig As Long, G as Integer
Dim A as Integer, B as integer
Application.ScreenUpdating = False
derlig = Range("A65536").End(xlUp).Row
For a = 1 To derlig Step 7
G = G + 1
For b = 0 To 7
Cells(a + b, 1).Copy Cells(G, b + 1)
Next
a = a + 1
Next
Range(Cells(G + 1, 1), Range("A65536")).Clear
End Sub
'-----------------------------------


Salutations!



"HRV" a écrit dans le message de news: df9g2f$mgj$
Bonjours à tous,

Je possède actuellement un problème entre l’acquisition de donnée et le
traitement de celles-ci. Les données brutes sont placées dans une seule
colonne, mais le programme de traitement nécessite une mise en page dans
un tableau sur 8 colonnes. De plus le tableau doit être lu dans le sens
de la lecture (droite à gauche). cfr exemple ci dessous, mais avec 3000
points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L
Avatar
FUXI
Tu fais un copier de tes cellules à transformer, et un collage spécial et tu
coches l'option "transposé".





Bonjours à tous,

Je possède actuellement un problème entre l’acquisition de donnée et le
traitement de celles-ci. Les données brutes sont placées dans une seule
colonne, mais le programme de traitement nécessite une mise en page dans
un tableau sur 8 colonnes. De plus le tableau doit être lu dans le sens
de la lecture (droite à gauche). cfr exemple ci dessous, mais avec 3000
points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L




Avatar
Modeste
Bonsour®
FUXI wrote:
Tu fais un copier de tes cellules à transformer, et un collage
spécial et tu coches l'option "transposé".

mais avec 3000 points



Heu ???? EXCEL posséderai maintenant plus de 256 colonnes ??? ;o)))

simple variante de la solution de Denis :

Sub EnLignes()
Dim derlig As Long, nblignes As Integer
Dim J As Long
Range("B:L").ClearContents
Application.ScreenUpdating = False
derlig = Range("A65536").End(xlUp).Row
nblignes = 1+Int(derlig / 8)
addr = ActiveSheet.Range(Cells(1, 1), Cells(derlig, 1)).Address()
Set Resultat = Range(Cells(1, 2), Cells(nblignes, 9))
J = 1
For Each cellule In Resultat.Cells
cellule.Value = Cells(J, 1)
J = J + 1
Next
Application.ScreenUpdating = True

End Sub






Bonjours à tous,

Je possède actuellement un problème entre l'acquisition de donnée et
le traitement de celles-ci. Les données brutes sont placées dans une
seule colonne, mais le programme de traitement nécessite une mise en
page dans un tableau sur 8 colonnes. De plus le tableau doit être lu
dans le sens de la lecture (droite à gauche). cfr exemple ci
dessous, mais avec 3000 points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042


Avatar
michdenis
Bonjour Modeste,

Il y avait aussi celle-ci : ;-)
'---------------------------
Sub Copy()
Dim Rg As Range
Dim DerLig As Long, A As Integer, B As Integer
DerLig = Range("A65536").End(xlUp).Row
Application.ScreenUpdating = False
For A = 1 To DerLig Step 8
Range("A" & A).Resize(8).Copy
B = B + 1
Cells(B, 2).PasteSpecial xlPasteAll, , , True
Next
Range("A1").EntireColumn.Delete xlToLeft
Range("A1").Select
End Sub
'---------------------------


Salutations!


"Modeste" a écrit dans le message de news:
Bonsour®
FUXI wrote:
Tu fais un copier de tes cellules à transformer, et un collage
spécial et tu coches l'option "transposé".

mais avec 3000 points



Heu ???? EXCEL posséderai maintenant plus de 256 colonnes ??? ;o)))

simple variante de la solution de Denis :

Sub EnLignes()
Dim derlig As Long, nblignes As Integer
Dim J As Long
Range("B:L").ClearContents
Application.ScreenUpdating = False
derlig = Range("A65536").End(xlUp).Row
nblignes = 1+Int(derlig / 8)
addr = ActiveSheet.Range(Cells(1, 1), Cells(derlig, 1)).Address()
Set Resultat = Range(Cells(1, 2), Cells(nblignes, 9))
J = 1
For Each cellule In Resultat.Cells
cellule.Value = Cells(J, 1)
J = J + 1
Next
Application.ScreenUpdating = True

End Sub






Bonjours à tous,

Je possède actuellement un problème entre l'acquisition de donnée et
le traitement de celles-ci. Les données brutes sont placées dans une
seule colonne, mais le programme de traitement nécessite une mise en
page dans un tableau sur 8 colonnes. De plus le tableau doit être lu
dans le sens de la lecture (droite à gauche). cfr exemple ci
dessous, mais avec 3000 points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042


Avatar
Jacky
Bonsoir à tous

Ou celle-ci, très,très basic ;o))
'-------------
Sub jj()
Application.ScreenUpdating = False
x = 1
For i = 1 To 3000
For j = 1 To 8
Cells(i, j).Value = Range("a" & x).Value
x = x + 1
Next
Next
Application.ScreenUpdating = True
End Sub
'-----------
Salutations
JJ
"michdenis" a écrit dans le message de
news:
Bonjour Modeste,

Il y avait aussi celle-ci : ;-)
'---------------------------
Sub Copy()
Dim Rg As Range
Dim DerLig As Long, A As Integer, B As Integer
DerLig = Range("A65536").End(xlUp).Row
Application.ScreenUpdating = False
For A = 1 To DerLig Step 8
Range("A" & A).Resize(8).Copy
B = B + 1
Cells(B, 2).PasteSpecial xlPasteAll, , , True
Next
Range("A1").EntireColumn.Delete xlToLeft
Range("A1").Select
End Sub
'---------------------------


Salutations!


"Modeste" a écrit dans le message de news:


Bonsour®
FUXI wrote:
Tu fais un copier de tes cellules à transformer, et un collage
spécial et tu coches l'option "transposé".

mais avec 3000 points



Heu ???? EXCEL posséderai maintenant plus de 256 colonnes ??? ;o)))

simple variante de la solution de Denis :

Sub EnLignes()
Dim derlig As Long, nblignes As Integer
Dim J As Long
Range("B:L").ClearContents
Application.ScreenUpdating = False
derlig = Range("A65536").End(xlUp).Row
nblignes = 1+Int(derlig / 8)
addr = ActiveSheet.Range(Cells(1, 1), Cells(derlig, 1)).Address()
Set Resultat = Range(Cells(1, 2), Cells(nblignes, 9))
J = 1
For Each cellule In Resultat.Cells
cellule.Value = Cells(J, 1)
J = J + 1
Next
Application.ScreenUpdating = True

End Sub






Bonjours à tous,

Je possède actuellement un problème entre l'acquisition de donnée et
le traitement de celles-ci. Les données brutes sont placées dans une
seule colonne, mais le programme de traitement nécessite une mise en
page dans un tableau sur 8 colonnes. De plus le tableau doit être lu
dans le sens de la lecture (droite à gauche). cfr exemple ci
dessous, mais avec 3000 points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042







Avatar
SL
Bonjour

Avec une formule et en supposant que la liste commence en feuil1!A1

sur une autre feuille sur 8 colonnes et 375 lignes pour 3000 données :
ÞCALER(Feuil1!$A$1;(LIGNE()-1)*8+COLONNE()-1;)
cordialement

Stéphane

"HRV" a écrit dans le message de news:
df9g2f$mgj$
Bonjours à tous,

Je possède actuellement un problème entre l’acquisition de donnée et le
traitement de celles-ci. Les données brutes sont placées dans une seule
colonne, mais le programme de traitement nécessite une mise en page dans
un tableau sur 8 colonnes. De plus le tableau doit être lu dans le sens de
la lecture (droite à gauche). cfr exemple ci dessous, mais avec 3000
points

Merci beaucoup

HRV (Excel 97)

Exemple :

Départ
A
B
C
D
E
F
G
H
I
J
K
L

Fin

A B C D E F G H
I J K L