Sommes cellules colorées

Bonjour,

Après quelques heures sur le forum à tenter de trouver la solution par moi-même... je viens demander un peu d'aide car je suis dépassée !

Objet : Je fais le planning hebdo de mon équipe (un agent par ligne, une couleur par tâche), et je souhaiterais que les heures soient comptabilisées automatiquement (en fonction des tâches - et donc des couleurs - que j'attribue à chacun).

Pour l'instant j'ai réussi à codifier mes couleurs.

Mes souhaits :

1) calculer le temps passé à chaque tâche par semaine, tous agents confondus (donc le total de cellules d'une même couleur sur l'ensemble du planning de la semaine)

=> j'ai copié et adapté ton module 2, mais ma formule ne passe pas (msg d'erreur "nom SomCool ambigu")

2) calculer le nombre d'heures réalisées par jour et par agent (donc le nombre de cellules colorées - toutes confondues - par ligne)

=> là, je ne sais pas du tout quelle doit être la formule...

Difficulté supplémentaire : mon planning est rythmé toutes les 1/2h. Comment ensuite transformer les résultats en heure ?

Je suis un peu honteuse de mes questions. J'essaie d'améliorer le plus possible ce tableau afin d'être plus efficace et précise, il est très important pour moi. Or je suis encore très limitée en la matière.

Si quelqu'un peut m'aider, merci beaucoup d'avance (et d'ailleurs si vous avez d'autres idées d'amélioration bien entendu je suis très preneuse !!!)

En pj mon tableau

-- Mercredi 10 Août 2011, 16h49 --

En fait je viens de réussi pour le 1) avec la fonction NbCoul (sauf pour la tâche garderie et pause.... bizarre...)

Mais je bloque toujours pour le 2)...

En pj tableau complété

edit Dan : Supprimé Help dans le titre du sujet

Bonjour Elomar,

Voici 2 fonctions qui pourraient t'aider :

Function NbCoul2(Zone As Range, pCouleur As Range) As Integer
'Zone = plage contenant les cellules (horaire)
'pCouleur = 1 cellule de référence. on prend sa couleur pour compter
'exemple : En C74 : NbCoul2("$A$3:$X$71,A74)
Dim c As Range

NbCoul2 = 0
Application.Volatile True
For Each c In Zone
    If c.Interior.ColorIndex = pCouleur.Interior.ColorIndex Then NbCoul2 = NbCoul2 + 1
Next c

'on divise par 2 car chaque case = 30 minutes
NbCoul2 = NbCoul2 / 2

End Function

Function NbParAgent(Zone As Range)
'Zone = une ligne par agent
'Exemple : En Y5 : NbParAgent(B5:X5)

Dim c As Range
NbParAgent = 0
Application.Volatile True
For Each c In Zone
    'compte toutes les cellules qui ont de la couleur
    If c.Interior.ColorIndex <> xlNone Then NbParAgent = NbParAgent + 1
Next c

'on divise par 2
NbParAgent = NbParAgent / 2

End Function

A+

Rechercher des sujets similaires à "sommes colorees"