Executer macro de façon automatique lorsqu'on change la couleur d'une case

Bonjour,

L'idée c'est de déterminer la couleur de fond des cases d'une colonne afin de pouvoir compter par exemple le nombre de cellule rouge de cette colonne et ayant la valeur "A", ou bien le nombre dans cette colonne de cases vertes avec la valeur "A", etc. Pour cette dernière phase j'utilise la formule NB.SI.ENS

Pour déterminer la couleur d'une case, j'utilise la fonctionne suivante:

<Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Function numCouleur(cellule As Range) As Integer
Application.Volatile
numCouleur = cellule.Interior.ColorIndex

End Function>

Cela fonctionne sauf que lorsque je change manuellement la couleur des cases, la macro/le test ne s'exécute pas automatiquement. Je suis obligé de relancer manuellement le test.

Savez-vous ce qu'il faut que j'ajoute dans ma fonction sous VBA pour qu'elle se lance automatiquement lors d'un changement de fond de couleur (d'une des cases)?

Est-ce que cela devrait fonctionner si la couleur de fond des cases est dépendante d'une MFC?

J'ai recherché dans l'onglet forum mais je n'ai pas trouvé de solution suffisamment explicite pour mon problème et mon petit niveau en VBA ^^

Je vous remercie par avance pour vos explications et aide apportée!

Au plaisir de vous lire.

Bien cordialement,

Hello,

Tu n'as pas la possibilité de déclencher du code au changement de fond d'une cellule.

Il faut a minima, écrire dans la cellule.

Bonjour,

ou faire F9 pour forcer le recalcul.
eric

Bonjour et merci pour vos premiers retours.

Je comprends ce que vous me dites, sauf que lorsque la couleur de ma case change en fonction de la valeur d'une autre case (MFC), ma fonction numCouleur ne détecte pas le changement de couleur et ne renvoie pas le nouveau code couleur de cette case. In fini mon calcul pour savoir combien de case contenant "A" rouge reste inchangé et devient donc faux.

J'ai tenté F9 mais ça ne s'update pas non plus.

Il semble donc que ma formule n'est pas adaptée lorsqu'il y a l'utilisation de MFC sur les cases de la plage sélectionnée.

Savez-vous ce qu'il faut que j'ajoute à mon code VBA pour que cela fonctionne avec MFC?

Bonjour,

tu parlais de couleurs manuelles, maintenant de MFC. Faudrait savoir...
Ca n'a rien à voir, une couleur MFC ne se détecte pas par une fonction et reste indépendante de la couleur de fond.
Le résultat d'une MFC (si tu n'en as pas plusieurs pouvant de recouvrir) se calcule en faisant le même calcul que celui mis dans la MFC
Tu devrais déposer un fichier de travail réduit à l'essentiel et détailler les manip ainsi que le résultat voulu.
eric

Bonjour,

Merci pour le retour.

J'évoque bien et demande bien l'effet lors de l'utilisation d'une MFC dans mon premier post, voir en l'occurrence ma seconde question..

Par contre, je comprends que le changement manuel, que j'utilise comme test pour mimer le changement de couleur d'une case par une MFC n'est pas la même chose.

Je vais donc regarder mon test et si je n'y arrive pas je reviens vers vous avec plus d'éléments.

au lieu du "Sub Workbook_SheetChange", j'utiliserai le "Worksheet_Calculate", ou bien les 2 !

Rechercher des sujets similaires à "executer macro facon automatique lorsqu change couleur case"