Bonjour,
Le changement de format d'une cellule n'est pas considéré comme un trigger de recalcul des fonctions du classeur, autrement cela pourrait très vite devenir lourd vous immaginez.
Donc c'est normal si votre fonction n'est pas recalculée. Vous pouvez cependant minimiser cela de deux façons :
Ou bien en ajoutant
Application.Volatile
Dans le code de votre UDF, ce qui rend la fonction volatile. Càd qu'elle est réévaluée à chaque RECALCUL du classeur. Attention encore une fois, le changement de couleur ne déclenche pas un recalcul. Mais n'importe quel changement de VALEUR de cellule, oui.
Autrement, dans l'évènement worksheet_change de la feuille en question, vous pouvez forcer le recalcul de ladite cellule, via
Range("monAdresse").Formula=Range("monAdresse").Formula
Le meme "Attention" s'applique, worksheet.change n'est appelé que lors d'un RECALCUL du classeur.
De manière générale, vous le voyez bien avec cet exemple, les couleurs ne sont pas destinées aux calculs dans Excel, c'est d'ailleurs pourquoi il n'y a quasi aucune fonction native qui y fait référence. Ce sont des aides visuelles.
Dans la mesure du possible, réfléchissez à comment remplacer vos couleurs par un autre indicateur. Sachez qu'en cas de MFC, vous pouvez simplement ajouter une colonne supplémentaire avec la formule de la MFC, et faire un somme.si avec comme condition cette colonne d'aide.