Re : Comment compter des cellules en fonction d'une couleur ?
bqtr à dit:
Re, bonsoir Gorfael
J'ai retouché un peu le fichier, mais n étant pas expert en VBA je suis pas sur que ca aille beaucoup plus vite.
Pourtant là sur l'ordi (pas préhistorique mais presque.... ) du boulot c'est rapide.
Si t'es toujours là Gorfael, peux tu me dire pourquoi avec ton fichier il faut double clicker sur la cellule et valider pour que les compteurs s'incrémentent ? Je vois pas la différence avec ce que j'ai fait (pas au niveau du code bien sur...)
Une fois la couleur appliquée à la cellule, un simple changement de cellule avec la souris ou avec la touche entrée suffit à incrémenter les compteurs avec le mien ??
P.O
Re...
Le problème dans la comptage des couleurs, c'est la couleur :
tu ne verras pas la différence entre vert=RGB(0,255,0), vert=RGB(0,254,0) et vert=RGB(0,253,0), alors qu'il y a 3 couleurs bien distinctes pour Excel.
Donc, pour tout ce qui est travail sur couleur, par habitude, je prend une référence et je l'applique à la cellule avec "reproduire la mise en forme" (le pinceau). Comme ça, impossible de ne pas avoir la même couleur quelle qu'elle soit.
et donc, ma macro fonctionnait bien, puisque je travail sur l'évènement Change
Sauf cet évènement n'est pas déclenché par le coloriage en direct de la cellule à l'aide de la palette
Mega-Désolé ! J'essaierais de tester mieux la prochaine fois
Pour ta macro, elle est bien sauf...
With Selection
If cell.Interior.ColorIndex = 4 Then Cvert = Cvert + 1
If cell.Interior.ColorIndex = 44 Then Corange = Corange + 1
If cell.Interior.ColorIndex = 3 Then Crouge = Crouge + 1
End With
tu peux supprimer With et End With
Cette instruction sert à eviter une réécriture de la partie gauche d'une instruction tu peux mettre
With cel
If .Interior.ColorIndex = 4 Then Cvert = Cvert + 1
If .Interior.ColorIndex = 44 Then Corange = Corange + 1
If .Interior.ColorIndex = 3 Then Crouge = Crouge + 1
End With
mais, à mon avis, ça sera moins rapide et moins lisible que
If cell.Interior.ColorIndex = 4 Then Cvert = Cvert + 1
If cell.Interior.ColorIndex = 44 Then Corange = Corange + 1
If cell.Interior.ColorIndex = 3 Then Crouge = Crouge + 1
A+