parce qu'elle est incomplète et n'analyse pas ta MFC.
En cherchant sur google tu devrais pouvoir en trouver des plus complètes. Ca devient rapidement des usines à gaz...
Sinon, vu que tes MFC ne sont pas bien complexes, tu peux aussi les calculer pour les émuler :
Public Function couleur(c As Range) As String
couleur = "sans"
If c.Value > 0 Then
couleur = "Vert"
ElseIf c = 0 And Year(Cells(c.Row, "AD")) < [K1].Value Then
couleur = "Rouge"
End If
End Function
j'ai fait simple.
Tu vois qu'elle s'adresse en dur à la colonne AD pour la date et à K1 pour l'année.
Si tu penses que ça peut évoluer, il faudrait la modifier pour lui passer en paramètre ces 2 données.
eric