La conversion d'une cellule de formule du texte à l'aide d'excel vba

Je suis en train d'écrire une macro dans Excel2003 pour trouver toutes les cellules contenant des formules dans un classeur et de la sortie de leur adresse et de la formule dans un couple de colonnes sur une autre feuille.

Je sais que je peux montrer la formule d'une cellule individuelle à l'aide de

Public Function ShowFormula(cell As Range) As String

    ShowFormula = cell.Formula

End Function

qui fonctionne très bien, mais depuis que je ne voulais pas avoir à trouver toutes les cellules à la main, j'ai écrit la macro suivante pour tous les trouver pour moi

Sub Macro2()


Dim i As Integer
Dim targetCells As Range
Dim cell As Range
Dim referenceRange As Range
Dim thisSheet As Worksheet

Set referenceRange = ActiveSheet.Range("CA1")

With referenceRange
    For Each thisSheet In ThisWorkbook.Sheets
        If thisSheet.Index >= referenceRange.Parent.Index Then
            Set targetCells = thisSheet.Cells.SpecialCells(xlCellTypeFormulas, 23)
            For Each cell In targetCells
                If cell.HasFormula Then
                    .Offset(i, 0).Value = thisSheet.Name
                    .Offset(i, 1).Value = cell.Address
                    .Offset(i, 2).Value = CStr(cell.Formula)
                    i = i + 1
                End If
            Next
        End If
    Next
End With

End Sub

Il trouve toutes les cellules, mais au lieu d'afficher la formule sous forme de texte, la liste affiche les résultats de la formule.

Ce qui me manque à la sortie les formules sous forme de texte plutôt que des formules?

OriginalL'auteur yu_ominae | 2012-12-04