OVH Cloud OVH Cloud

Déplacer des colonnes

2 réponses
Avatar
Flag
Bonjour, j'ai un tableau comme le suivant:
P= produit

Date P1 P2 P3 P4 P5 ....... J'ai 260 produits
01/01/03 A A C A A

02/01/03 A A A A A
03/01/03 A I A D A
Jusqu'à
31/12/05 A I A D A

Je veux déplacer les colonnes pour obtenir le tableau suivant:

Date Nom produit Statut
01/01/03 P1 A

02/01/03 P1 A
03/01/03 P1 A
Jusqu'à
31/12/05 P1 A
01/01/03 P2 A

02/01/03 P2 A
03/01/03 P2 I
Jusqu'à
31/12/05 P2 I
01/01/03 P3 C

02/01/03 P3 A
03/01/03 P3 A
Jusqu'à
31/12/05 P3 A
01/01/03 P4 A

02/01/03 P4 A
03/01/03 P4 D
Jusqu'à
31/12/05 P4 D
01/01/03 P5 A

02/01/03 P5 A
03/01/03 P5 A
Jusqu'à
31/12/05 P5 A

Il ne faut pas oublier que excel a seulement 65k lignes et si je fais le
décompte j'aurais besoin de (365*3*260) 284 700 lignes. Le fichier doit alors
être réparti sur plusieurs onglets......

Est-ce qu'il existe une façon rapide de faire cet exercice?

Merci à l'avance pour votre aide!

--
Flag
Excel 2002
Windows 2000

2 réponses

Avatar
isabelle
bonjour Flag,

Sub Macro1()
Dim x As Integer, y As Integer, FD As Object, c
x = 2
Set FD = Sheets("Feuil" & x)
For y = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column - 1
For Each c In Sheets("Feuil1").Range("A2:A" & _
Sheets("Feuil1").Range("A65536").End(xlUp).Row)
NbLigneFD = FD.Range("A65536").End(xlUp).Row
If NbLigneFD = 65535 Then
x = x + 1
Set FD = Sheets("Feuil" & x)
NbLigneFD = 1
End If
FD.Cells(NbLigneFD + 1, 1) = c
FD.Cells(NbLigneFD + 1, 2) = Sheets("Feuil1").Cells(1, y + 1)
FD.Cells(NbLigneFD + 1, 3) = Sheets("Feuil1").Cells(c.Row, y + 1)
Next c
Next y
End Sub

isabelle


Bonjour, j'ai un tableau comme le suivant:
P= produit

Date P1 P2 P3 P4 P5 ....... J'ai 260 produits
01/01/03 A A C A A

02/01/03 A A A A A
03/01/03 A I A D A
Jusqu'à
31/12/05 A I A D A

Je veux déplacer les colonnes pour obtenir le tableau suivant:

Date Nom produit Statut
01/01/03 P1 A

02/01/03 P1 A
03/01/03 P1 A
Jusqu'à
31/12/05 P1 A
01/01/03 P2 A

02/01/03 P2 A
03/01/03 P2 I
Jusqu'à
31/12/05 P2 I
01/01/03 P3 C

02/01/03 P3 A
03/01/03 P3 A
Jusqu'à
31/12/05 P3 A
01/01/03 P4 A

02/01/03 P4 A
03/01/03 P4 D
Jusqu'à
31/12/05 P4 D
01/01/03 P5 A

02/01/03 P5 A
03/01/03 P5 A
Jusqu'à
31/12/05 P5 A

Il ne faut pas oublier que excel a seulement 65k lignes et si je fais le
décompte j'aurais besoin de (365*3*260) 284 700 lignes. Le fichier doit alors
être réparti sur plusieurs onglets......

Est-ce qu'il existe une façon rapide de faire cet exercice?

Merci à l'avance pour votre aide!



Avatar
Flag
Excellent,

Merci beaucoup Isabelle!


--
Flag
Excel 2002
Windows 2000




bonjour Flag,

Sub Macro1()
Dim x As Integer, y As Integer, FD As Object, c
x = 2
Set FD = Sheets("Feuil" & x)
For y = 1 To Sheets("Feuil1").Range("IV1").End(xlToLeft).Column - 1
For Each c In Sheets("Feuil1").Range("A2:A" & _
Sheets("Feuil1").Range("A65536").End(xlUp).Row)
NbLigneFD = FD.Range("A65536").End(xlUp).Row
If NbLigneFD = 65535 Then
x = x + 1
Set FD = Sheets("Feuil" & x)
NbLigneFD = 1
End If
FD.Cells(NbLigneFD + 1, 1) = c
FD.Cells(NbLigneFD + 1, 2) = Sheets("Feuil1").Cells(1, y + 1)
FD.Cells(NbLigneFD + 1, 3) = Sheets("Feuil1").Cells(c.Row, y + 1)
Next c
Next y
End Sub

isabelle


Bonjour, j'ai un tableau comme le suivant:
P= produit

Date P1 P2 P3 P4 P5 ....... J'ai 260 produits
01/01/03 A A C A A

02/01/03 A A A A A
03/01/03 A I A D A
Jusqu'à
31/12/05 A I A D A

Je veux déplacer les colonnes pour obtenir le tableau suivant:

Date Nom produit Statut
01/01/03 P1 A

02/01/03 P1 A
03/01/03 P1 A
Jusqu'à
31/12/05 P1 A
01/01/03 P2 A

02/01/03 P2 A
03/01/03 P2 I
Jusqu'à
31/12/05 P2 I
01/01/03 P3 C

02/01/03 P3 A
03/01/03 P3 A
Jusqu'à
31/12/05 P3 A
01/01/03 P4 A

02/01/03 P4 A
03/01/03 P4 D
Jusqu'à
31/12/05 P4 D
01/01/03 P5 A

02/01/03 P5 A
03/01/03 P5 A
Jusqu'à
31/12/05 P5 A

Il ne faut pas oublier que excel a seulement 65k lignes et si je fais le
décompte j'aurais besoin de (365*3*260) 284 700 lignes. Le fichier doit alors
être réparti sur plusieurs onglets......

Est-ce qu'il existe une façon rapide de faire cet exercice?

Merci à l'avance pour votre aide!