This should do it:
Option Explicit
Sub ColumnsToSheets()
Dim ws As Worksheet, MyRNG As Range
Dim Rw As Long, NR As Long, Col As Long
With ActiveSheet
Application.ScreenUpdating = False
For Col = 3 To 49
If Len(.Cells(1, Col)) > 0 Then 'cell isn't blank in row1
If Not Evaluate("ISREF('" & .Cells(1, Col) & "'!A1)") Then 'sheet doesn't already exist
Sheets.Add(after:=Sheets(Sheets.Count)).Name = .Cells(1, Col) 'create sheet
NR = 1 'set first row to add into
For Rw = 2 To .Cells(.Rows.Count, Col).End(xlUp).Row Step 3 'copy data, set next row
Range("A" & NR).Resize(, 3).Value = WorksheetFunction.Transpose(.Cells(Rw, Col).Resize(3))
NR = NR + 1
Next Rw
Columns.AutoFit
End If
End If
Next Col
.Activate
Application.ScreenUpdating = True
End With
End Sub
Bookmarks