Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Lister formules d'un onglet

roby

XLDnaute Occasionnel
Bonjour le forum

Existe-t-il une macro qui pourrait rapatrier (lister) toutes les formules existantes d'une feuille vers un nouvel onglet ?

Merci d'avance Roby
 

roby

XLDnaute Occasionnel
Re : Lister formules d'un onglet

bonsoir le forum, Rachid_0661

si cela existe, pourrais je avoir le lien. car je ne sais plus quoi mettre comme libelle pour la recherche.

merci d'avance Roby
 

R@chid

XLDnaute Barbatruc
Re : Lister formules d'un onglet

bonsoir le forum, Rachid_0661

si cela existe, pourrais je avoir le lien. car je ne sais plus quoi mettre comme libelle pour la recherche.

merci d'avance Roby
Re
C'est facile, poster un fichier exemple on marquant bien les resultats souhaites. et tu va svoir combien de reponse tu auras
@ +
Rachid
 

roby

XLDnaute Occasionnel
Re : Lister formules d'un onglet

Re

ci-joint un fichier exemple, avec "Formules" feuille ou les formules des différents onglet sont rapatriées.

merci d'avance
 

Pièces jointes

  • Stats Colmar (2012) - Copie.zip
    77.1 KB · Affichages: 38

STephane

XLDnaute Occasionnel
Re : Lister formules d'un onglet

bonsoir,

Il y a une méthode faisant appel une fonction propre à Excel 4 et à la création de noms.
C'est également possible avec le langage VBA.
J'ai employé les 2 dans le fichier ci-joint ; je conseille la méthode VBA, trouvant l'usage des noms et de formules Excel 4 hasardeux.

bonne réception
 

Pièces jointes

  • Stats Colmar (2012) - xld01022012.xlsm
    94.8 KB · Affichages: 70

STephane

XLDnaute Occasionnel
Re : Lister formules d'un onglet

Les cellules D4 à D9 de ta feuille "Formules" contiennent une première méthode utilisant le nom "LF".
- Dans les versions d'Excel antérieures à 2007, les noms se défissent dans le menu "Insertion", sous-menu "Nom", commande "définir".
- Dans les versions postérieures à 2007, la commande "Définir nom" est disponible dans le ruban, section "Formules".
- Le nom "LF" a été défini à l'aide d'une formule qui utilise la fonction LIRE.CELLULE pour retourner la formule d'une auter cellule qui elle a été définie avec la formule "INDIRECT".
- Formule du nom LF =LIRE.CELLULE(6;INDIRECT(Formules!$B7&"!"&Formules!$C7))
- Pour utiliser ce nom, il suffit d'écrire =LF dansune cellule de la colonne D.

La deuxième méthode n'utilise pas un nom mais une fonction VBA personnalisée dont il faut écrire le code dans un module de code.
Function XLFormula(rg As Range)
XLFormula = rg.Formula
End Function
Cette fonction s'utilise dans une formule et la référence à une autre cellule doit lui être passée. Tu peux donc écrire :
=XLFormula(A1).

Pour ton besoin, tu peux écrire
=XLFormula(INDIRECT(B10&"!"&C10)) où B10 = SAISE et C10 = C37
 

roby

XLDnaute Occasionnel
Re : Lister formules d'un onglet

Re

Merci pour tes explications claires, je n'avais pas pensé comme ça.
Pourrait-on envisager de mettre un code sous un bouton qui fasse la recherche des cellules qui possèdent une formule et incrémenter une liste dans une feuille dédiée.

bonne soirée à tous Roby
 

Efgé

XLDnaute Barbatruc
Re : Lister formules d'un onglet

Bonjour roby, STephane, Rachid_0661,
Une proposition :
VB:
Private Sub CommandButton1_Click()
Dim F As Worksheet, C 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
            On Error Resume Next
            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.Formula
                End If
            Next C
            On Error GoTo 0
        End If
    Next F
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "Traitement terminé", , "Compte-rendu"
End Sub
Cordialement
 

Pièces jointes

  • Stats_Colmar_(2012)(3).xlsm
    58.1 KB · Affichages: 81

roby

XLDnaute Occasionnel
Re : Lister formules d'un onglet

Bonjour le Forum, Efgé, STephane

Merci Efgé, super cool, c exactement ce que je voulais.
Merci encore, je pense que ce code servira a beaucoup.

Passez un très bon Weekend.
 

Efgé

XLDnaute Barbatruc
Re : Lister formules d'un onglet

Re à tous, Bonjour 00 ,
Comme je n'aime pas utiliser "on error resume next" sans gestion d'erreur, je propose une autre formulation du même code.
J'ai aussi essayé de passer par un tableau pour aller plus vite mais les 1040 caractères de la cellule Saisie!J10 posent problème...

VB:
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.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

roby, la prochaine foi, enlève les codes WorbookOpen, c'est préférable...

Cordialement
 

Pièces jointes

  • Stats_Colmar_(2012)(4).xlsm
    54.2 KB · Affichages: 83

karakoman1

XLDnaute Occasionnel
Re : Lister formules d'un onglet

Bonjour le fil, le forum
Une petite question sur le code d'Efgé qui est tout simplement superbe
Comment fait on pour "l'importer" dans un autre classeur et le rendre ainsi transportable?
Merci d'avance
 

Efgé

XLDnaute Barbatruc
Re : Lister formules d'un onglet

Re, Bonjour karakoman1n
Le transport dans un autre classeur est prévu , il suffit de le mettre dans une sub classique.. le seul prérequis est soit d'avoir un feuille nommée Formules, soit de modifier la ligne
VB:
With Sheets("Formules")
avec le bon nom

J'ai l'impression qu'il plait bien mon petit bout de code

Cordialement

[Edit] Encore plus simple (méthode testée) : déplacer la feuille "Formules" dans le classeur a traiter
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
199
Réponses
5
Affichages
146
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…