Dim strFormula As String, strBetweenParenthesis As String, strNewFormula as String
Dim lPos As Long, lNextChar As Long, lStart As Long, lEnd As Long
dim rSource as range
Set rSource = ActiveCell
strFormula = rSource.Formula
strNewFormula = strFormula
lPos = InStr(1, strFormula, "INDIRECT")
If lPos > 0 Then
Do
lStart = lPos + Len("INDIRECT")
lEnd = InStr(lStart, strNewFormula, ")")
strBetweenParenthesis = Mid(strNewFormula, lStart, lEnd - lStart + 1)
strNewFormula= Replace(strNewFormula, "INDIRECT" & strBetweenParenthesis, Evaluate(strBetweenParenthesis))
lPos = InStr(lEnd - Len("INDIRECT" & strBetweenParenthesis) + Len(Evaluate(strBetweenParenthesis)), strNewFormula, "INDIRECT")
Loop Until lPos = 0
rSource.Formula = strNewFormula
End If
rSource.ShowPrecedents
rSource.NavigateArrow True, 1
rSource.ShowPrecedents(True)
rSource.Formula = strFormula