A cheval entre la formule et la macro, la fonction personnalisée est parfait pour ce genre de choses.
marcote, après avoir ouvert ton classeur, fait Ctrl+F11. Dans la liste de gauche fait un clic droit sur VBAProject(NomClasseur.xls) où "NomClasseur.xls" c'est le nom de to classeur, et sélectionne Insertion > Module.
Da la partie de droite, fait un copié collé du code ci dessous :
Function ETATELEVES(Recherche As String, ByVal Target As Range) As Byte
Dim Compteur As Byte
For Each Item In Target
If Item.Value = 1 Then
Select Case Recherche
Case "Réglés"
Compteur = Compteur + 1
Case "Absents"
If Item.Interior.ColorIndex = 3 Then Compteur = Compteur + 1
Case "Présents"
If Item.Interior.ColorIndex = 10 Then Compteur = Compteur + 1
End Select
End If
Next
ETATELEVES = Compteur
End Function
Cette fonction s'utilise comme n'importe quelle fonction d'Excel, voici sa synthaxe :
=ETATELEVES(Recherche; Plage)
Donc tu tape cette fonction à l'endroit ou tu veux une somme et pour indiquer quelle somme tu veux à la place de Rechercher tu tape un des trois mots suivant,
avec les guillemets :
- "Réglés" pour les élève ayant réglé (cellules avec un 1)
- "Absents" pour compter les élèves absents (cellules rouges et avec un 1)
- "Présents" pour compter les élèves présents (cellules vertes et avec un 1)
Ensuite pour "Plage" il faut taper la plage des cellules à compter, par exemple : B2:B12 sans guillemets) pour les cellules B2 à B12. Bie nsur tu peux aussi les sélectionner avec la souris, ça marche aussi.
Deux remarques :
1) Excel n'ayant pas la notion de couleurs, elles sont représentées par des numéros, et pour Excel un numéro c'est un numéro. J'ai donc mis les numéros correspondant au rouge ordinaire et au vert ordinaire, si les couleurs que tu a choisi sont plutôt claires ou foncées elle n'auront pas le bon numéro et ça ne marchera pas il faudra donc ajuster tes couleurs.
2) Comme dans ton exemple ne fait pas mention des élèves n'ayant pas réglé, ceux-ci ne sont pas comptés parmis les présents et absents par la fonction.
Voilà c'est tout y'en a plus long à expliquer que de code lol...
A+ ;)