Bonjour
@Tophe2 ,
Une fonction personnalisée qui s'appelle : CouleurPlage(...)
Elle a quatre paramètres en entrée :
- xrgPlageSource : c'est la plage des cellules sources
- operation : c'est le type d'opération qu'on doit faire. Si sa valeur est 0 alors on effectue un comptage, sinon on effectue une somme
- coulFondPolice : c'est l'élément dont on doit considérer la couleur. Si sa valeur est 0 alors on s’intéresse à la couleur du fond, sinon on s’intéresse à la couleur de la police
- xrgRefCoul : c'est la cellule qui indique la couleur de référence. Attention! Si on s’intéresse à la couleur du fond alors c'est la couleur du fond de cette cellule qui sera la référence. Si on s’intéresse à la couleur de la police alors c'est la couleur de police de cette cellule qui sera la référence.
La déclaration de la fonction est donc :
Function CouleurPlage ( xrgPlageSource As Range , operation& , coulFondPolice& , xrgRefCoul As Range )
Exemple 1 : =CouleurPlage( B9:G9 ; 0; 0; H8 ) : Sur la plage B9:G9, on va compter les cellules dont la couleur de fond est identique à la couleur de fond de la cellule H8
Exemple 2 : =CouleurPlage( B9:G9;1;1;J8 ) : Sur la plage B9:G9, on va sommer les cellules dont la couleur de police est identique à la couleur de la police de la cellule H8
La formule en H9 est à recopier en I9, puis les formules H9:I9 sont à recopier vers le bas.
La formule en J9 est à recopier en K9, puis les formules J9K9 sont à recopier vers le bas.
Attention ! Quand vous modifiez des couleurs (du fond ou de la police), Excel n'effectue pas forcément le recalcul de la feuille. Il faut veiller à forcer le recalcul de la feuille en tapant sur la touche de fonction
F9.
Le code est dans
Module1. Il est un tout petit peu commenté.
nota : cette fonction est utilisable dans une feuille de calcul ou dans un code VBA.