Comptage occurrence selon couleur et texte

Bonjour à tous.

Jusqu'à présent j'utilise Excel pour des fonctions très simples donc votre aide me sera d'un grand secours.

Après une première approche (merci à mon Forumeur) je souhaite aller plus loin dans l'automatisation des calculs.

A la base, un 1er classeur "planning" dont chaque feuille représente l'horaire hebdo d'une équipe.

Chaque semaine je détermine 2 postes de travail spécifiques avec une couleur.

Un 2 éme classeur avec 2 feuilles de poste qui comptabilisent nominativement par semaine le nombre de fois ou les membres de l’équipe ont effectué le ou les dits postes de travail.

Si j'ai obtenu la bonne fonction pour la sélection de la couleur de fond , et pour 1 nom de l'équipe (A6),

Comment mettre en forme la fonction pour tous les noms dans la colonne A

Function NbreCellPoste(Plage As Range, Couleur As Byte) As Long

'Compter le nombre de cellules d'une couleur donnée dans une plage donnée
'= couleur est = au code colorIndex exmple 3 pour rouge
'fx tapez: =NbreCellDuty(A1:E5;3)
'B4:B8;3 (plage de selection);(code de colorIndex=rouge)
'"*" permert de ne pas tenir compte des anotations dans la cellule contenant le texte (Nom) de référence

Application.Volatile

Dim Cellule As Range

For Each Cellule In Plage
If Cellule.Interior.ColorIndex = Couleur And Not IsEmpty(Cellule) And Cellule.Value Like "*" & Range("A6") & "*" Then
NbreCellPoste = NbreCellPoste + 1
End If

Next Cellule

End Function

Ci-joint mon training pour plus de clarté .

24nbre-duty-v3.xlsm (36.79 Ko)

Encore merci .

Bonjour,

C'est pour cette raison qu'on n'utilise jamais de valeur en "dur" dans une fonction, on doit le lui passer en argument. CelNom demande un Range donc une cellule et dans ton cas, les cellules en colonne A :

Function NbreCellPoste(Plage As Range, CelNom As Range, Couleur As Byte) As Long
    'Compter le nombre de cellules d'une couleur donnée dans une plage donnée
    '= couleur est = au code colorIndex exmple 3 pour rouge
    'fx tapez: =NbreCellDuty(A1:E5;3)
    'B4:B8;3 (plage de selection);(code de colorIndex=rouge)
    '"*" permert de ne pas tenir compte des anotations dans la cellule contenant le texte (Nom) de référence
    Application.Volatile

    Dim Cellule As Range

    For Each Cellule In Plage

        If Cellule.Interior.ColorIndex = Couleur And Cellule <> "" And Cellule.Value Like "*" & CelNom.Value & "*" Then

            NbreCellPoste = NbreCellPoste + 1

        End If

    Next Cellule

End Function

La formule devient =NbreCellPoste('0918'!$B$5:$H$17;$A4;3) en B4 de la feuille "Duty" à tirer vers le bas

Attention à l'orthographe, et surtout aux espaces parasites !

Grand, trés grand merci à toi Theze.

Commencer la journée avec le problème de résolu je commence mieux la semaine que je ne l'ai fini

Merci également à Amadéeus, avec qui j'ai échangé la semaine précédente et qui a plus qu'amorcer le début de solution.

Et merci à tous les forumeurs qui consacre de leur temps pour nous dépatouiller de nos formules.

sans aucun problème.

Bonne semaine à tous, en tout cas pour moi c'est le cas!

Rechercher des sujets similaires à "comptage occurrence couleur texte"