Problème pour formule NB.SI

Résolu
Bonjour à tous,

Je fais appel à vous, les experts d'Excel car je souhaiterais faire une formule NB.SI qui prendrait en compte les données inscrites sur plusieurs feuilles d'un même classeur.

Voici la formule NB.SI que j'ai faite sur la feuille dénommée "MARS 2017" =NB.SI(A1:L60;"LIBRE")
Celle-ci fonctionne parfaitement (en même temps rien de plus facile)

En revanche j'aimerais pouvoir, plutôt que de faire cette formule sur toute les feuilles du classeur et ensuite d'additionner le résultat, faire une formule NB.SI dans la feuille récap. qui irait rechercher sur la même plage (A1:L60) de toutes les feuilles du classeur, le même mot "LIBRE"

Le nom des feuilles sont par exemple : MARS 2017, AVRIL 2017, MAI 2017....

Pouvez vous m'aider sur ce point.

Merci d'avance pour toutes vos réponses.

Bien amicalement.
Nyco

5 réponses

Résumé de la discussion

Le besoin est de compter, sur l’ensemble des feuilles d’un classeur, les occurrences de la valeur « LIBRE » sans multiplier les NB.SI par chaque onglet, afin d’obtenir un total unique dans le récapitulatif. Des solutions proposées utilisent une liste des noms de feuilles et une fonction INDIRECT associée à NB.SI ou SOMMEPROD pour agréger les résultats sur toutes les feuilles. L’exemple courant consiste à placer les noms des feuilles dans une plage A1:A12 et à utiliser =SOMMEPROD(NB.SI(INDIRECT($A$1:$A$12&"!A1:L60"),"LIBRE")) pour un total global. D’autres approches évoquées traitent les cas où les cellules demeurent vides en les convertissant en zéro via SIERREUR et adaptent les plages lorsqu’il faut étendre la recherche à des colonnes supplémentaires.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour Nico12

    Une idée

    =NB.SI('mars 2017'!A1:L60;"libre")+NB.SI('avril 2017'!A1:L60;"libre")+NB.SI('mai 2017'!A1:L60;"libre")

    vous additionnez les douze feuilles
    0
    1. Merci Philou,

      C'est une solution, pas moyen en revanche de mettre quelque chose comme :
      =NB.SI('mars 2017':'mai 2017'!A1:L60;"libre") ?

      Merci de votre aide !
      0
  2. Bonjour à tous,

    1/J'ai cru voir sur certains forums que nous pouvions créer la formule NB.SI.3D ?
    Celle-ci me servirait à savoir combien de fois la valeur "LIBRE" est inscrite dans le classeur entier sur les onglets nommés de Janvier à Décembre.

    Cela m'éviterait de créer des tonnes de formules dans chacun des onglets et ensuite de les additionner. (J'ai excel 2013)

    2/ Sur chaque onglets, j'ai le numéro de la semaine avec un nombre d'heure.
    exemple, dans la cellule A15 "TOTAL SEMAINE 5" et en cellule G15, le nombre d'heure s'y référant.
    Je souhaiterais mettre dans le récap que si dans le classeur la cellule s'appelle "TOTAL SEMAINE 5" qu'il me copie les heures y figurant afin de faire un global sur l'année.

    Pouvez vous m'aider svp ?

    Merci à tous de votre aide.

    Nyco
    0
    1. Bonsoir Nico

      Avec la formule de Jacques Boisgontier (voir d'autres exemples sur son site):
      Dans la feuille RECAP mettre par exemple en A1:A12 les noms des 12 onglets, puis dnas une cellule la formule :
      =SOMMEPROD(NB.SI(INDIRECT($A$1:$A$12&"!A1:L60");"LIBRE"))

      Cdlmnt
      Via
      0
      1. Contributeur
        Bonjour,

        tu peux aussi mettre ton nb.si() sur chaque feuille et faire une somme 3D.
        eric
        0
        1. Bonsoir,

          En utilisant une Function à insérer dans un module :

          Function monNbSi(rng As Range, criteria) As Long
              Dim ws As Worksheet
          
              For Each ws In ThisWorkbook.Worksheets
                  'If ws.name <> "Feuil1" And ws.name <> "Feuil2" Then 'si tu souhaites éviter certaines feuilles
                      monNbSi = monNbSi + WorksheetFunction.CountIf(ws.Range(rng.Address), criteria)
                  'End If
              Next ws
          End Function
          
          


          S'utilise ainsi : =monNbSi(plage;critère), donc =monNbSi(A1:L60;"LIBRE")
          0
          1. Bonsoir Jauster,

            Merci déjà de ton aide.
            J'ai bien crée ma fonction mais lorsque je veux la mettre en application comme tu me l'as écrit.
            Il me met le message d'erreur suivant.

            "Attention votre classeur contient une ou plusieurs références circulaires qui risquent d'entraîner des erreurs de calcul dans vos formules."

            Pouvez vous de nouveau me venir en aide.
            Merci d'avance.

            Nyco.
            0
          2. @nyco12Salut, peux-tu joindre le fichier ici ? merci
            0
          3. @JausterOui je peux bien sur mais (je n'ai pas ouvert mes yeux) je ne trouve pas comment joindre le fichier... :-/
            Peux tu m'aider ? Merci d'avance
            0
          4. Voici : https://we.tl/6j1sDXDJDh
            Merci de ton aide.
            0