Compteur sur EXCEL

Bonjour,
j'ai créer un classeur excel dans le quel il y a 32 feuilles, sur les 31 feuilles j'ai créer des tableaux contenant des listes de noms ( un staff de travail )- sur chaque feuilles une parti du staff et pas tout le staff

sur la 32eme feuille il y a la liste de tout le staff
ce que je souhaite avoir c'est un compteur devant chaque nom ( sur la 32 eme feuilles ) pour m'indiquer combien de fois le nom de la personne a apparu dans les 31 premiers feuilles de mon classeur
c'est à dire combien de fois le contenu de la cellule s'est répété dans les 31 feuilles de mon classeur
c'est URGENT SVP

11 réponses

  1. Il fallait utilisé une bases de donnée ...

    Cela est beaucoup plus simple =)
    0
    1. peut-tu me donner une macro pour sa ou une fonction STP !!
      0
      1. Merci quand même ! :(
        0
        1. Merci beaucoup mais comment faire sur plusieurs feuilles ???
          0
          1. tu les sélectionnes toute. Cela devrait créer une plage style "feuil1!A1:A50+feuil2!A1:A50"
            0
            1. désolé mais ça n'a pas fonctionné ! j'ai essayé avec les 3 premiers feuilles seulement ( =NB.SI('01-10-2010'!B:L+'02-10-2010'!B:L+'03-10-2010'!B:L) il me dit qu'il y a une erreur
              0
              1. Et avec ceci:
                =NB.SI('01-10-2010'!B:L+'02-10-2010'!B:L+'03-10-2010'!B:L,"HASSEN")

                Je pars au boulot -
                A ce soir si tu n'as toujours pas trouvé
                Ritchi
                0
                1. Modérateur
                  Bonjour,
                  Tu as deux possibilités :
                  Par formule :
                  Il convient d'ajouter des NB.SI(plage,valeur_cherchée). Il ne faut pas ajouter les plages, mais les NB.SI. Exemple :
                  Ta valeur cherchée en A1 et tes plages en Feuil1, Feuil2, Feuil3 :
                  =NB.SI(Feuil1!A1:J23;A1)+NB.SI(Feuil2!A1:J23;A1)+NB.SI(Feuil3!A1:J23;A1)

                  Bien mais pas top quand tu as 31 feuilles...

                  Par macro :
                  A l'aide d'une fonction personnalisée.
                  1- Dans ton classeur Excel tape : ALT + f11.
                  2- Insertion/Module. Dans le module ainsi créée colle ce code :

                  Function NB_SI_MultiFeuil(Valeur_Cherchee As Range)
                  Dim Ws As Worksheet
                  Dim l As Double
                  Dim DerLig As Integer
                  Dim DerCol As String, NomFeuil As String
                  NomFeuil = ActiveSheet.Name
                  For Each Ws In ThisWorkbook.Worksheets
                  If Ws.Name <> NomFeuil Then
                      DerLig = Split(Ws.UsedRange.Address, "$")(4)
                      DerCol = Split(Ws.UsedRange.Address, "$")(3)
                      l = Application.WorksheetFunction.CountIf(Ws.Range("A1:" & DerCol & DerLig), Valeur_Cherchee)
                      NB_SI_MultiFeuil = NB_SI_MultiFeuil + l
                  End If
                  Next
                  End Function

                  3- ferme la fenêtre Visual Basic
                  4- Clique dans la cellule ou tu veux le résultat,
                  5- Insertion/Fonction
                  6- Dans le menu "Sélectionnez une catégorie" choisit "personnalisée"
                  7- Sélectionne : NB_SI_MultiFeuil
                  8- Dans la "case" Valeur_Cherchee indique le nom de la cellule ou se trouve ta valeur (exemple : A1) et valide...
                  Si tu as un souci, n'hésite pas à revenir...
                  0
                  1. Bonjour,
                    J'apporterais une légère modification à la première solution, juste histoire de pouvoir dupliquer la formule sur plusieurs lignes: je mettrais un $ dans la localisation:
                    =NB.SI(Feuil1!$A$1:$J$23;A1)+NB.SI(Feuil2!$A$1:$J$23;A1)+NB.SI(Feuil3!$$A$1:$J$23;A1)
                    Ainsi si tu propages cette formule à plusieurs ligne, la localisation ne changera pas, seul le critère sera adapté à chaque nouvelle ligne.

                    Ritchi
                    0
                    1. ... ou donner
                      à Feuil1!$A$1:$J$23;A1 le nom List1
                      à Feuil2!$A$1:$J$23;A1 le nom List2
                      à Feuil3!$A$1:$J$23;A1 le nom List3
                      et écrire =NB.SI(List1;A1)+NB.SI(List2;A1)+NB.SI(List3;A1)
                      0