Lister les formules et les cellules d'un classeur ou d'une feuille

maxdhavys

XLDnaute Nouveau
Bonjour à vous,

quelqu'un saurait me proposer un code en vba afin de lister toutes les formules, les résultat et les cellules (définies par un nom) d'une feuille donnée ou dans un classeur entier.

Attention mon classeur contient plus de 65000 formules ce qui dépasse la capacité des lignes d'une feuille... :s

Cordialement,
Maxdhavys
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Lister les formules et les cellules d'un classeur ou d'une feuille

Bonjour Max, bonjour le forum,

Tu as la possibilité d'afficher les formules au lieu de leur résultat directement dans l'onglet :
Ruban Fichier / Options. Dans la boîte de dialogues Option Excel choisir Options avancées. Dans la partie Afficher les options pour cette feuille de calcul, cocher la case Formules pour les cellules au lieu de leur résultats calculés.

Sinon, le code ci-dessous va colorer de rouge toutes les cellules contenant une formule :
Code:
Sub Macro1()
Dim O As Object 'déclare la variable O

For Each O In Sheets
    O.Cells.SpecialCells(xlCellTypeFormulas).Interior.ColorIndex = 3 'colore la cellule conteant un formule de rouge
Next O
End Sub
Comme tu parles de plus de 65000 formules, je vois mal comment les lister...
 

maxdhavys

XLDnaute Nouveau
Re : Lister les formules et les cellules d'un classeur ou d'une feuille

Bonsoir DoubleZero, ce code fonctionne vraiment bien :)

A celui-ci, j'ai rajouté une ligne afin d'obtenir la colonne donnant le résultat des formules par contre quelqu'un saurait faire en sorte que celui-ci fasse les chose suivantes:

-lister les formules de chaque feuille sur une nouvelle feuille: par exemple que la feuille 1 soit listée sur une feuille "liste feuille 1", la feuille 2 soit listée sur une feuille "liste feuille 2" etc.
-mettre des titre au tableaux créer dans chaque nouvelle feuille: Nom, formule, résultat

Ci-joint le code de Efgé:

Code:
Private Sub CommandButton1_Click()
Dim F As Worksheet, C As Range, CTest As Range, X&
 Application.Calculation = xlCalculationManual
 Application.ScreenUpdating = False
With Sheets("Formules")
     .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp).Offset(1, 2)).ClearContents
     For Each F In Worksheets
         If F.Name <> .Name Then
             Set CTest = F.Cells.Find("=", , xlFormulas)
             If Not CTest Is Nothing Then
                 For Each C In F.Cells.SpecialCells(xlCellTypeFormulas)
                     If Left(C.Formula, 1) = "=" Then
                         X = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                         .Cells(X, 1) = F.Name
                         .Cells(X, 2) = C.Address
                         .Cells(X, 3) = "'" & C.FormulaLocal
                         .Cells(X, 4) = C.Formula
                     End If
                 Next C
                 Set CTest = Nothing
             End If
         End If
     Next F
End With
 Application.ScreenUpdating = True
 Application.Calculation = xlCalculationAutomatic
 MsgBox "Traitement terminé", , "Compte-rendu"
End Sub

Cdt,
Maxdhavys
 

DoubleZero

XLDnaute Barbatruc
Re : Lister les formules et les cellules d'un classeur ou d'une feuille

Bonjour à toutes et à tous,

Au lieu de multiplier la création d'onglets pour lister les formules, une suggestion, en pièce jointe.

L'idée conviendra-t-elle ?

A bientôt :)
 

Pièces jointes

  • 00 - maxdhavys - Formules du fichier lister.xls
    66 KB · Affichages: 55

Efgé

XLDnaute Barbatruc
Re : Lister les formules et les cellules d'un classeur ou d'une feuille

Bonjour maxdhavys, Bonjour Robert, Bonjour 00 :) , Salut Staple

Suite à M.P, je faits une proposition.
J'ai repris le classeur exemple du fil d'origine.
Les feuilles sont crées si elles n'éxistent pas.
Ce sont les en-têtes de la feuille "Formules" qui sont recopiés sur chaque feuille de liste.
Il faudra vérifier que tes noms de feuille ne soient pas trops long.
J'ai piqué la très bonne idée du lien HyperTexte qu'a eu 00.

Cordialement
 

Pièces jointes

  • Recup_Formules(1).xlsm
    52.8 KB · Affichages: 52

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 495
Membres
103 236
dernier inscrit
Menni