Bonsoir,
la formule suivante permet de compter les jours de présence dans un planning formé de colonnes (colonne des jours ; colonne donnant le N° du jour dans la semaine_1 à 7_ ; plus 1 colonne par personne ) en ne comptant que les jeudi (par exemple) : la fonction est utilisée en dessous de chaque colonne "personne".
BgColor est la cellule de référence couleur avec laquelle les jours de présence sont notés (par exemple vert) ;
Jsem est le N° du jour de la semaine voulu (4 si on ne veut compter que les jeudis par exemple) ;
i permet de référencer la colonne contenant le N° des jours avec offset (on doit donc entrer la valeur -8 si la colonne des N° de semaine est 8 cases à gauche de la colonne "personne" testée.

Ca fonctionne, mais on ne peut pas étirer les cellules pour calculer la même chose pour toutes les personnes ie il faut à chaque fois saisir la valeur du i.
J'ai donc essayé de faire calculer automatiquement le i dans la fonction.
Avec la fonction ComptColone donnée un peu plus loin, on peut compter l'écart entre 2 colonnes, mais je n'arrive pas à l' inclure dans ma formule.
En espérant que la présentation du pb ne soit pas trop brouillon...merci d'avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
'compte cellules avec une couleur de fond en fonction du jour de la semaine
Function ColorCountFctJSem(SearchArea As Object, BgColor1 As Range, i As Integer, Jsem As Integer) As Integer
Application.Volatile True
ColorCountFctJSem = 0
MaCoul1 = BgColor1.Interior.ColorIndex
For Each cell In SearchArea
     If cell.Interior.ColorIndex = MaCoul1 And cell.Offset(0, i).Value = Jsem Then ColorCountFctJSem = ColorCountFctJSem + 1
Next cell
End Function

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Function comptcolone(NJour As Range) As Integer
comtcolone = 0
Dim i As Integer
Dim j As Integer
i = NJour.Column
j = ActiveCell.Column
comptcolone = i - j
End Function