Perhaps this macro may help. Place it in a standard VBA module, then activate the sheet containing the formulas, and run the macro.
It will create a new sheet, list your formulas, and separate them by sheet name and cell reference with the help of Andrew Poulsom's formulas. The root idea for the macro structure came from something similar posted by Dave Peterson last year, so thanks to him also.
Tested on XL2K2 XP.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub ListFormulas()
Dim SourceSheet As Worksheet
Dim cell As Range
Dim counter As Long, LastRow As Long, iRow As Long, AllFormulas As Long
Set SourceSheet = ActiveSheet
Application.ScreenUpdating = False
With Worksheets.Add(after:=Sheets(Sheets.count))
Application.DisplayAlerts = False
On Error Resume Next
Worksheets(Left(SourceSheet.Name, 22) & "_Formulas").Delete
On Error GoTo 0
Application.DisplayAlerts = True
.Name = Left(SourceSheet.Name, 22) & "_Formulas"
.Range("A1").Value = "Formulas on Sheet " & SourceSheet.Name & ":"
.Range("C:D").NumberFormat = "@"
Range("A3").Value = "Cell Count"
Range("B3").Value = "Cell Address"
Range("C3").Value = "Formula, standard"
Range("D3").Value = "Formula, RC"
Range("E3").Value = "Sheet name, standard"
Range("F3").Value = "Cell ref, standard"
Range("G3").Value = "Sheet name, RC format"
Range("H3").Value = "Cell ref, RC format"
Range("A1,A3:H3").Font.Bold = True
counter = 0
On Error Resume Next
AllFormulas = SourceSheet.Cells.SpecialCells(xlCellTypeFormulas).Cells.count
For Each cell In SourceSheet.Cells.SpecialCells(xlCellTypeFormulas)
.Range("B4").Offset(counter, 0).Value = cell.Address(0, 0)
.Range("C4").Offset(counter, 0).Value = cell.Formula
.Range("D4").Offset(counter, 0).Value = cell.FormulaR1C1
counter = counter + 1
Next cell
On Error GoTo 0
Range("B3").CurrentRegion.Sort Key1:=.Range("D3"), Header:=xlYes
LastRow = .Cells(.Rows.count, 2).End(xlUp).Row
For iRow = LastRow To 4 + 1 Step -1
If .Cells(iRow, 4).Value = .Cells(iRow - 1, 4).Value Then
.Cells(iRow - 1, 2).Value = .Cells(iRow - 1, 2).Value & ", " & .Cells(iRow, 2).Value
.Rows(iRow).Delete
End If
Next iRow
With .Range("A4:A" & .Cells(.Rows.count, 2).End(xlUp).Row)
.Formula = "=len(B4)-len(substitute(B4,"","",""""))+1"
.Value = .Value
End With
Range("E4", Range("C65536").End(xlUp).Offset(0, 2)).Formula = "=IF(ISERROR(SUBSTITUTE(MID(RC[-2],2,FIND(""!"",RC[-2],1)-2),""'"","""")),"""",SUBSTITUTE(MID(RC[-2],2,FIND(""!"",RC[-2],1)-2),""'"",""""))"
Range("F4", Range("D65536").End(xlUp).Offset(0, 2)).Formula = "=RIGHT(RC[-3],LEN(RC[-3])-FIND(""!"",RC[-3],1))"
Range("G4", Range("E65536").End(xlUp).Offset(0, 2)).Formula = "=IF(ISERROR(SUBSTITUTE(MID(RC[-3],2,FIND(""!"",RC[-3],1)-2),""'"","""")),"""",SUBSTITUTE(MID(RC[-3],2,FIND(""!"",RC[-3],1)-2),""'"",""""))"
Range("H4", Range("F65536").End(xlUp).Offset(0, 2)).Formula = "=RIGHT(RC[-4],LEN(RC[-4])-FIND(""!"",RC[-4],1))"
.Range("A:A").ColumnWidth = 10
.Range("B:H").Columns.AutoFit
.Rows.AutoFit
Application.Goto Range("A1"), True
Application.Goto Range("A4"), False
ActiveWindow.FreezePanes = True
End With
SourceSheet.Activate
Application.Goto Range("A1"), True
Application.ScreenUpdating = True
End Sub