Sub test()
Dim i&, LstRw As Long, Arrets As Variant, LstCel As Range
With Sheets("a")
LstRw = .Cells(Rows.Count, 1).End(xlUp).Row
Arrets = .Range(.Cells(3, 1), .Cells(LstRw, 1))
For i = 2 To .Cells(2, Columns.Count).End(xlToLeft).Column Step 2
Set LstCel = Sheets("b").Cells(Rows.Count, 1).End(xlUp)(2)
LstCel.Resize(UBound(Arrets, 1), 1) = Arrets
.Range(.Cells(3, i), .Cells(LstRw, i + 1)).Copy LstCel.Offset(0, 1)
Next i
End With
End Sub