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

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)
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
    41.1 KB · Affichages: 10

Etoto

XLDnaute Barbatruc
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
C'est parce qu'une feuille ne possède pas de formule cela m'a fait le même problème, il faut que toutes les feuilles aient une formule minimum pour que le code fonctionne.
 

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
Ce qui donnerait quoi comme code final ? (je suis toujours pas bon en VBA)
 

soan

XLDnaute Barbatruc
Inactif
@Etoto : désolé, j'ai juste voulu indiquer une piste, et j'suis actuellement débordé avec d'autres exos ; j'peux pas tout faire en même temps ! (et j'ai pas d'sous pour embaucher une secrétaire ! )
 

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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…