Option Explicit 'oblige à déclarer touites les variables
Sub Macro1()
'déclaration des variables
Dim Col As Byte 'déclare la variable Col (dernière Colonne éditée)
Dim x As Byte, y As Byte 'déclare les variables x et y
Dim deb As Integer, fin As Integer 'déclare les variable deb (début) et fin
Dim plage As Range 'déclare la variable plage
Dim nb As Integer 'déclare la variable (nb de lignes)
Col = Range('IV3').End(xlToLeft).Column - 1 'définit la variable Col
deb = Range('A1').End(xlDown).Row 'définit la variabledeb
fin = Range('A65536').End(xlUp).Row 'définit la variable fin
nb = fin - deb + 1 'définit la variable nb
Set plage = Range(Cells(deb, 1), Cells(fin, 1)) 'définit la variable plage
'cette partie ne tiens compte des dates
For x = 1 To Col - 1 'boucle sur le nombre de colonnes -1
'copie les noms et les colle en dessous
plage.Copy Destination:=Cells(fin + 1, 1)
'copie la colonne des noms décalé de x+1 et la colle en dessous
plage.Offset(0, x + 1).Cut Destination:=Cells(fin + 1, 2)
fin = fin + nb 'redéfinit la variable fin
Next x
'mise en place des dates
For x = 1 To Col 'boucle sur le nombre de colonnes
Cells(2, x + 1).Copy 'copie la date
Range(Cells(deb, 3), Cells(deb + nb - 1, 3)).Select 'sélectionne la plage de destination
ActiveSheet.Paste 'cole la date
deb = deb + nb 'redéfinit la variable deb
Next x
Rows(2).ClearContents 'efface le contenue de la ligne 2
Range('A1').Select 'sélectionne la cellule A1
End Sub