Option Explicit
Option Base 1
Sub ReorgDataV2()
' hiker95, 10/01/2011
' http://www.mrexcel.com/forum/showthread.php?t=581001
Dim w1 As Worksheet, wR As Worksheet
Dim I(), O()
Dim LR As Long, LC As Long, r As Long, c As Long, n As Long
Set w1 = Worksheets("Sheet1")
LR = w1.Cells.Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False).Row
LC = w1.Cells.Find("*", , xlValues, xlWhole, xlByColumns, xlPrevious, False).Column
I = w1.Range("A2").CurrentRegion.Resize(, LC).Value
ReDim O(1 To (LC - 12 + 1) * (LR - 1) + 1, 1 To 13)
O(1, 1) = "Week"
O(1, 2) = "Seq"
O(1, 3) = "Unique"
O(1, 4) = "Type"
O(1, 5) = "Regime"
O(1, 6) = "Cohort"
O(1, 7) = "Heritage"
O(1, 8) = "Prod Area"
O(1, 9) = "Channel"
O(1, 10) = "Pro/Re"
O(1, 11) = "Direct/CMC"
O(1, 12) = "Total Complaints"
O(1, 13) = "xxxxx"
n = 1
For r = 2 To UBound(I) Step 1
For c = 12 To LC Step 1
n = n + 1
O(n, 1) = I(1, c)
O(n, 2) = I(r, 1)
O(n, 3) = I(r, 2)
O(n, 4) = I(r, 3)
O(n, 5) = I(r, 4)
O(n, 6) = I(r, 5)
O(n, 7) = I(r, 6)
O(n, 8) = I(r, 7)
O(n, 9) = I(r, 8)
O(n, 10) = I(r, 9)
O(n, 11) = I(r, 10)
O(n, 12) = I(r, 11)
O(n, 13) = I(r, c)
Next c
Next r
If Not Evaluate("ISREF(Results!A1)") Then Worksheets.Add(After:=w1).Name = "Results"
Set wR = Worksheets("Results")
wR.UsedRange.Clear
wR.Range("A1").Resize(UBound(O), 13).Value = O
wR.UsedRange.Columns.AutoFit
wR.Activate
End Sub