Move the data so the data starts in A1, titles that is. Then this should work for any size data groups you want to run it on.
Option Explicit
Sub ReorderColumns()
Dim Cols As Long, Grp As Long
Dim LR As Long, LC As Long
LC = Cells(1, Columns.Count).End(xlToLeft).Column
Cols = Rows(1).Find("Date", After:=[A1], _
LookIn:=xlValues, LookAt:=xlPart).Column - 1
LR = Cells.Find("*", Cells(Rows.Count, Columns.Count), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For Grp = Cols + 1 To LC Step Cols
Cells(2, Grp).Resize(LR, Cols).Copy _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Next Grp
LR = Cells.Find("*", Cells(Rows.Count, Columns.Count), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Range("A1", Cells(LR, Cols)).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
Columns(Cols + 1).Resize(, 100).Clear
End Sub
Bookmarks