XL 2010 nb.si sur plusieurs onglet

Michael78

XLDnaute Nouveau
Bonjour,

J'ai un classeur contenant environ 200 onglets (nombre variable en fonctions des mois). chaque onglet correspond à une "feuille type" de récupération de donnée. je souhaite utiliser la fonction NB.SI sur l'ensemble du classeur. la fonction doit répondre à :
compter le nombre de cellule "G4" du classeur qui contienne la valeur X
le nom des onglets est variable, il correspond à la date puis un numéro à 8 chiffres et il est généré en automatique (il correspond à une cellule de la feuille).

je n'arrive pas à faire tourner NB.SI sur l'ensemble du classeur.

merci pour votre aide...

PS: je vous joins un fichier, je n'ai mis que 4 onglets 1 correspondant à la création d'une nouvel fiche (ne dois pas être pris en compte pour le calcul de la cellule G4, et 3 fiches de données.
 

Pièces jointes

  • Fichier Excel Download.xlsm
    68.3 KB · Affichages: 8

GALOUGALOU

XLDnaute Accro
bonjour michael78 bonjour le forum
je n'ai pas la réponse à votre problème mais je vous propose de contourner le problème
si j'ai bien compris il s’agit de compter le nombre de cellule contenant des valeurs dans la cellule G4
petite précision je ne crois pas qu'on puisse faire tourner la formule nb.si sur tout le classeur
voir le lien ci-dessous

pour gérer votre problématique
j'ai posé une formule dans la cellule am1 de chaque feuille
une macro ci dessous boucle sur le classeur et comptabilise les cellules am1
le résultat dans la feuille TOTAUX
a vous d'adapter
si vous voulez le résultat dans tout le classeur il suffira de faire référence la la feuille TOTAUX

j'ai posé la macro dans évènements feuille de TOTAUX
si vous adopté cette solution n'oubliez pas de rajouter l'exécution de cette macro à des endroits stratégique.
la macro
Enrichi (BBcode):
Sub Cumul()
Dim Ws As Worksheet
Dim Total As Double
 
Total = 0
For Each Ws In Worksheets
    If Ws.Name <> "TOTAUX" Then
        If IsNumeric(Ws.Cells(1, 39)) Then Total = Total + CDbl(Ws.Cells(1, 39))
    End If
Next Ws
Sheets("TOTAUX").Range("A1") = Total
End Sub
cordialement
galougalou
 

Pièces jointes

  • comptabiliser les valeurs dans le classeur v1.xlsm
    65.7 KB · Affichages: 3

Michael78

XLDnaute Nouveau
Super merci,

cela fonctionne...
par contre, je suis en apprentissage pourrais tu m'expliquer/me confirmer :

Dim Total as Double
Total = 0

cela signifie que la variable Totaux est un nombre entier, sans virgule ?

je ne comprend pas la ligne :

If IsNumeric(Ws.Cells(1, 39)) Then Total = Total + CDbl(Ws.Cells(1, 39))
 
Dernière édition:

Discussions similaires

Réponses
20
Affichages
485