XL 2019 nombre de formules dans un classeur

pat66

XLDnaute Impliqué
Bonjour le forum,

est t'il possible de compter le nombre de formules qu'il y a dans un classeur

merci

Pat66
 
Solution
Ta macro me dit que j'ai 0 formule dans mon fichiers alors que j'en ai 35
Ta variable "x" est attachée a aucun code aussi.
Vous voulez dire que j'ai oublié de la déclarer? mais même sans déclaration ça marche quand même.

Essayez l'exemple suivant

pat66

XLDnaute Impliqué
Bonjour Le fil, le forum

merci pour le tuyau, mais cela va être fastidieux car mon classeur comporte 60 feuilles, je pensais pouvoir le faire avec une macro qui comptabilise toutes les formules du classeur

en tout cas merci

Pat66
 

Rouge

XLDnaute Impliqué
Bonjour,

Essayez ceci
VB:
Sub Compte_Formules()
    Dim Cpt As Long
    Dim Feuille As Long
    
    Application.ScreenUpdating = False
    NbFeuil = ActiveWorkbook.Sheets.Count
    For Feuille = 1 To NbFeuil
        Sheets(Feuille).Select
        Selection.SpecialCells(xlCellTypeFormulas).Select
            Cpt = Cpt + Selection.Count
    Next Feuille
    MsgBox "Nombre de formules trouvées: " & Cpt
End Sub
 

Etoto

XLDnaute Barbatruc
Bonjour,

(Je sais j'embête un peu)
Bonjour,

Essayez ceci
VB:
Sub Compte_Formules()
    Dim Cpt As Long
    Dim Feuille As Long
  
    Application.ScreenUpdating = False
    NbFeuil = ActiveWorkbook.Sheets.Count
    For Feuille = 1 To NbFeuil
        Sheets(Feuille).Select
        Selection.SpecialCells(xlCellTypeFormulas).Select
            Cpt = Cpt + Selection.Count
    Next Feuille
    MsgBox "Nombre de formules trouvées: " & Cpt
End Sub
Par contre ta macro renvoie un erreur si une des 60 feuilles ne contient aucune formule (j'ai fait un test).
 

pat66

XLDnaute Impliqué
Bonjour Rouge, le fil,

j'ai testé ta macro mais voila l'erreur qui m'est renvoyé, j'ai désactivé option explicit

Une idée peut être ?

merci
 

Pièces jointes

  • Capture d’écran 2021-05-11 095823.jpg
    Capture d’écran 2021-05-11 095823.jpg
    41.1 KB · Affichages: 10

soan

XLDnaute Barbatruc
Inactif
Bonjour pat66, Etoto,

en complément de la réponse d'Etoto, je crois que tu devrais utiliser :

ActiveSheet.SpecialCells(xlCellTypeFormulas).Select

et mettre une gestion d'erreur du style On Error Resume Next ou On Error Goto pour éviter le plantage en cas de feuille de calcul qui est sans aucune formule.​

soan
 

Etoto

XLDnaute Barbatruc
Bonjour pat66, Etoto,

en complément de la réponse d'Etoto, je crois que tu devrais utiliser :

ActiveSheet.SpecialCells(xlCellTypeFormulas).Select

et mettre une gestion d'erreur du style On Error Resume Next ou On Error Goto pour éviter le plantage en cas de feuille de calcul qui est sans aucune formule.​

soan
Ce qui donnerait quoi comme code final ? (je suis toujours pas bon en VBA)
 

Etoto

XLDnaute Barbatruc
Essaie ça
VB:
Sub Compte_Formules()
    Dim Cpt As Long
    Dim Feuille As Long
    
    Application.ScreenUpdating = False
    NbFeuil = ActiveWorkbook.Sheets.Count
    For Feuille = 1 To NbFeuil
        Sheets(Feuille).Select
        Selection.SpecialCells(xlCellTypeFormulas).Select
        On Error Resume Next
            Cpt = Cpt + Selection.Count
    Next Feuille
    MsgBox "Nombre de formules trouvées: " & Cpt
End Sub
 

soan

XLDnaute Barbatruc
Inactif
@Etoto

oh là ! ne mets pas le On Error Resume Next dans la boucle For ! c'est inutile d'exécuter cette instruction à chaque tour de boucle (c'est-à-dire ici pour 1 à NbFeuil) ; met On Error Resume Next avant la boucle For, par exemple juste après la ligne Dim Feuille As Long

ensuite, attention à ceci : en cas d'erreur, l'instruction qui sera exécutée suite à On Error Resume Next sera Cpt = Cpt + Selection.Count ; or il me semble bien qu'il ne faut pas que ce compteur Cpt soit incrémenté si la feuille ne contient aucune formule ; c'est pour ça que c'est moins simple qu'il y paraît ; je te laisse chercher une solution... 😜

soan​
 

Etoto

XLDnaute Barbatruc
Oui j'ai remarqué avec mes tests, mais je peux mettre le On Error dans le For mais après je doit soustraire par le nombres de feuilles qui ne contiennent PAS de formules ce que je sais pas faire mais je vais essayer.
 

Discussions similaires

Réponses
6
Affichages
460

Statistiques des forums

Discussions
315 127
Messages
2 116 495
Membres
112 765
dernier inscrit
SIDIANW