Bonsoir,
voici une fonction de comptage de cellules qui pemet de compter des cellules d'une zone donnée en fonction de la couleur donnée par BgColor1 et de la valeur d'une cellule dont on détemine l'emplacement en comptant le nombre de colonnes qui sépare la cellule dans laquelle on va placer la fonction et une autre cellule ;
le problème, c'est qu'avec activecell, j'ai une formule qui fonctionne uniquement si je suis placé sur la case de la formule. La 2ème formule donne la solution : il faut créer une variable range en plus.
La question est de savoir s'il y a moyen de référencer la cellule dans laquelle on place la fonction sans avoir à créer une variable pour cela.
NB: il y a plus de détail sur une question nommée Pb avec offset qui m'avait permis de finir cette formule, mais a soulevé ce pb.
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 : cette formule fonctionne Function ColorCountFctJSemAuto(SearchArea As Object, BgColor1 As Range, NJour As Range, Jsem As Integer) As Integer Application.Volatile True ColorCountFctJSemAuto = 0 MaCoul1 = BgColor1.Interior.ColorIndex For Each cell In SearchArea If cell.Interior.ColorIndex = MaCoul1 And cell.Offset(0, (NJour.Column - ActiveCell.Column)).Value = Jsem Then ColorCountFctJSemAuto = ColorCountFctJSemAuto + 1 Next cell End Function
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 : cette formule fonctionne Function ColorCountFctJSemAuto(SearchArea As Object, BgColor1 As Range, NJour As Range, CasFct as Range, Jsem As Integer) As Integer Application.Volatile True ColorCountFctJSemAuto = 0 MaCoul1 = BgColor1.Interior.ColorIndex For Each cell In SearchArea If cell.Interior.ColorIndex = MaCoul1 And cell.Offset(0, (NJour.Column - CasFct.Column)).Value = Jsem Then ColorCountFctJSemAuto = ColorCountFctJSemAuto + 1 Next cell End Function
Partager