Thanks Pat
I remembered overnight that a colleague did some ExcelVB code which works specifically on a huge set of cross tabs that I had to work with last year. It works really well, but my problem is that I have no experience of ExcelVB to be able to tweak this and use it for future crosstabs that I need to normalise. (I like that word btw..)
Here's the code if you're interested.
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 10/01/2002 by Terry White
'
' Keyboard Shortcut: Ctrl+a
'
Dim nname, sname, c, r, i, j, tcount As Integer
sname = ActiveSheet.Name
Sheets.Add
nname = InputBox("Please type the name for new sheet.")
ActiveSheet.Name = nname
Sheets("" & nname).Cells(1, 1) = "Outline description"
Sheets("" & nname).Cells(1, 2) = "Floor"
Sheets("" & nname).Cells(1, 3) = "Quantity"
tcount = 2
Sheets("" & sname).Activate
Select Case Cells(6, 4)
Case Is = "Outline description"
Case Else
MsgBox "The sheet is not the correct format. "
End
End Select
c = Cells(6, 4).End(xlToRight).Column - 2
r = Cells(6, 4).End(xlDown).Row - 1
For j = 7 To r
For i = 5 To c
Select Case Cells(j, i)
Case Is = ""
Case Else
Sheets("" & nname).Cells(tcount, 1) = Cells(j, 4)
Sheets("" & nname).Cells(tcount, 2) = Cells(6, i)
Sheets("" & nname).Cells(tcount, 3) = Cells(j, i)
tcount = tcount + 1
End Select
Next i
Next j
End Sub
Regards
Terry