Maybe:
Sub acsishere()
Dim i As Long
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ws = ActiveSheet
ws.Copy Before:=Sheets(1)
ActiveSheet.Name = "Helper"
Range(Cells(1, 3), Cells(ActiveSheet.UsedRange.Rows.count, ActiveSheet.UsedRange.Columns.count)).Select
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("C1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlLeftToRight, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
For i = 3 To ActiveSheet.Columns.count - 2 Step 2
If i < 19 Then
ws.Range("A1:B" & ActiveSheet.UsedRange.Rows.count + 1).Copy
Sheets.Add.Name = Cells(2, i).Value
Range("A1").PasteSpecial xlPasteAll
End If
Sheets("Helper").Activate
Next i
Sheets("Helper").Activate
For i = 3 To ActiveSheet.Columns.count - 3 Step 2
If i < 19 Then
If Cells(2, i).Value = Cells(2, i).Offset(, 1).Value Then
Sheets("Helper").Range(Cells(1, i), Cells(ActiveSheet.UsedRange.Rows.count + 1, i + 1)).Copy Sheets(Cells(2, i).Value).Range("C1")
End If
If Cells(2, i).Value <> Cells(2, i).Offset(, 1).Value Then
Sheets("Helper").Range(Cells(1, i), Cells(ActiveSheet.UsedRange.Rows.count + 1, i)).Copy Sheets(Cells(2, i).Value).Range("C1")
End If
Sheets("Helper").Activate
End If
Next i
ActiveSheet.Select
ActiveWindow.SelectedSheets.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Bookmarks