Bonjour,
Le changement d'une couleur n'est pas interprété par Excel comme un évènement nécessitant d'actualiser les formules.
Par ailleurs, il n'est pas non plus détectable par la macro Worksheet_change qui permet d'exécuter un code en fonction d'une modification telle qu'un changement de valeur d'une cellule.
De même, Application.Volatile sugéré par xorsankukai (salut au passage ! ) ne permet probablement pas non plus de le détecter. En effet, celui-ci force le recalcul des formules suite à la modification de n'importe quelle valeur du classeur, qu'elle concerne une cellule dont dépend la fonction en question ou pas.
Si la couleur est modifiée manuellement, voilà une tentative à mettre dans le module VBA de la feuille en question :
Dim Couleur As Long, Cel As Range
Private Sub Worksheet_Activate()
Couleur = ActiveCell.Interior.Color: Set Cel = ActiveCell 'Garde en mémoire la dernière cellule + dernière couleur de fond
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Cel.Interior.Color <> Couleur Then Calculate 'Actualise les formules
Couleur = Target.Interior.Color: Set Cel = Target 'Actualise la dernière cellule active + dernière couleur de fond
End Sub
Note : ce code actualise les formules après un changement de cellule active, uniquement si la couleur à changé. Si ça ne fonctionne pas, on peut actualiser les formules dans tous les cas, mais si le classeur en contient beaucoup, il sera ralenti.