NB.SI combiné avec une détection de couleur de fond
Bonjour a tous
Mon probleme est le suivant , je souhaite simplifier l'encodage d'un tableau de présences
Pour le moment c'est comme ceci
Sat Sun Mon Tue Wed Thu Fri Sat Sun
01 02 03 04 05 06 07 08 09
PW PW P P X X P PW PW
XW XW MM MM MM MM MM XW XW
PW PW P X X P P PW PW
PW PW X X P P P PW XW
CAW CAW CA X CA CA CA XW XW
Ce qu'on ne voit pas c'est que de manière automatique, les samedi et dimanche ( le weekend ) ont un fond coloré ( histoire de s'y retrouver )
Apres tout le mois , j'ai différentes colonnes qui calcules certaines choses
Par exemple :
=(NBJO-(COUNTIF($F35:$AJ35,"M*")+COUNTIF($F35:$AJ35,"PCL" )+COUNTIF($F35:$AJ35,"CSS")))/8*$E35
=COUNTIF($F37:$AJ37,"M")+COUNTIF($F37:$AJ37,"PCL")
=COUNTIF($F37:$AJ37,"*W")-COUNTIF($F37:$AJ37,"XW")
On voit immédiatement que lors de l'encodage et manuellement il faut rajouter un W pour mentionner le Weekend.
Du coup, mes formules doivent gérer les élements encodés pour retrouver le valeurs *W , CAW , XW , etc
Evidement, j'aurais préféré que l'encodage entre la semaine et le weekend soit le même;
et adapter mes formules pour qu'il y ai le NB.SI mais en plus une vérification si la cellule a une couleur de fond.
J'ai bien réussit a définir des fonctions VBA pour réagir seulement si le fond est coloré , mais pas a étendre le comportement
avec un NB.SI
Mes fonctions sont :
Function ISWeekend(cell As Range)
Application.Volatile True
If (ColorCell(cell) > 0) Then
ISWeekend = vbTrue
Else
ISWeekend = vbFalse
End If
End Function
Public Function ColorCell(Cible As Range) As Variant
Application.Volatile True
ColorCell = Cible.Interior.ColorIndex
End Function
Merci d'avance pour vos réponses et aide
Bonjour,
Si une solution par formules simples pourrait te convenir, un petit exemple en pièce jointe serait plus facile pour te montrer comment faire.
dré
Voici un fichier
( Allégé pour qu'il ne fasse que 100Ko )
https://www.excel-pratique.com/~files/doc/Pointages_DA_cembre_Copie.xls
Je disais VBA , mais je suis évidement ouvert a toute solution qui fonctionne
Bonsoir,
Il te faudra un peu de patience, le temps de tout comprendre dans ton fichier.
A première vue, pas besoin des W pour différencier les weekend (puisque les dates le font), et il y a quelques formules à (fortement) simplifier, ainsi que les MFC.
Je vois cela demain, dès que j'ai cinq minutes, à moins que quelqu'un d'autre l'a fait avant moi..
dré
Salut
En effet, pour l'instant , j'ai mis en place une solution rapide ... avec une différenciation des weekend avec des W pour que les formules "comprennent"
La coloration des cellules de Weekend ... c'est pour l'instant uniquement un repère visuel justement pour que celui qui encode sache quand il doit ajouter un W ( ou pas )
Tu dis que les formules doivent être fort simplifiées .. je ne pense pas qu'elle soient TRES compliquées ... il ne manqe a mon avis que l'interprétation du code X , M , P , CA .. etc mais en considérant le meme range de cellules et en "trouvant" les weekend.
ca veux dire que au lieu d'avoir un NB.SI , avec un critère "*W" ou explicite CAW , etc
ca sera un NB.SI combiné avec un "IsWeekend".
Comme je l'avais dit , j'ai réussit a le faire pour une cellule ... il faut a priori "juste" que je comprenne comment on fait pour un ensemble de cellule ...
Si tu as besoin d'aide ou de commentaires .. on peux le faire par email .. si tu veux