Premier Exemple :
Compter les couleurs sous Excel !
Vous avez certainement déjà réussi à l'aide de formule à afficher une somme de chiffre (f SOMME) ou même à n'en compter que certain (f NB.SI).
Mais avez vous déjà essayé de compter des couleurs?
Cela vous étonnerait-il si nous vous prouvions que c'est à peine plus difficile que les deux précédentes fonctions?
Un bout de code VBA et une formule suffisent :

En colonne A, les couleurs.
En colonne B, le numéro auquel correspond la couleur (propre à Excel)
En colonne C, la solution à notre problème
Pour détailler d'avantage :
La formule présente en cellule B3 est la suivante : =(CouleurSelect(A3))
Ce qui veut dire : Affiche moi le numéro de la couleur présente en cellule A3 (cellule rouge)
Cette formule est uniquement destinée à connaitre le numéro de la couleur que nous rechercherons ensuite et pourra être effacée. Dans cette exemple, le numéro du rouge est le 3
La formule présente en cellule C3 est la suivante : =nbcellcouleur(A:A;42)
Ce qui veut dire : Dis moi combien j'ai de cellule de couleur bleu dans la colonne A
Ou plus en détail : Dis moi combien j'ai de cellule (nbcell) de couleur (couleur) bleu (42) dans la colonne A (A:A)
Et le résultat : 4. Nous avons effectivement 4 cellules de couleur bleu dans la colonne A.
Le contenu de la colonne B peut être effacé.
Côté formule, nous n'avons pas exagéré sur la simplicité de celles-ci.
Pour que cela fonctionne, il faut maintenant insérer un code VB.
Pour ce faire:
- Onglet "Développeur", puis Icone "Visual Basic"
- Une fois arrivé sous VB, faites un clic droit sur votre classeur, "insertion", "module"
=> si c'est un test il devrait s'appeler "VBA Project (Classeur 1)" et vous créer un "module 1"

- Sélectionnez le module puis collez y le code suivant :
Function CouleurSelect(Cellule As Range)
CouleurSelect = Cellule.Interior.ColorIndex
End Function
Function NbCellCouleur(Plage As Range, Couleur As Integer) As Long
Dim c As Range
NbCellCouleur = 0
For Each c In Plage
If c.Interior.ColorIndex = Couleur Then
NbCellCouleur = NbCellCouleur + 1
End If
Next c
End Function
Une fois terminé, revenez à votre feuille de calcul et constatez.
(pour aider Excel à se raffraichir, il faut parfois faire un "Control" + "Alt" + "F9" )
Par la suite, il ne vous reste plus qu'à adapter la formule en fonction de la plage de recherche et de la couleur recherchée.

Nous serons heureux d'avoir votre avis sur ce premier exemple, et de pouvoir éventuellement le compléter grâce à vos interrogations. N'hésitez pas à laisser un commentaire.
|