Quelque chose comme ça :
Sub Dégrader()
Dim n%, i%, c As Range
n = Selection.Cells.Count
For Each c In Selection
c.Interior.Color = RGB(Int(240 * (1 - i / n) + 12), _
Int(240 * (1 - Abs(n / 2 - i) / (n / 2)) + 12), _
Int(240 * (1 - (n - i) / n) + 12))
i = i + 1
Next c
End Sub
Fonctionne sur une sélection de cellules. On sélectionne et on lance la macro.
Ici, on va de rouge vers bleu : on diminue le rouge en augmentant le bleu, le vert augmentant puis diminuant domine à mi-parcours.
Cela manque peut-être un peu de jaune orangé. En diminuant le rouge au démarrage (enlever +12) on part d'un ton plutôt orangé (mais plus de rouge net).
On peut essayer de nuancer diversement : si on obtient une erreur, c'est qu'on dépasse quelque part les valeurs autorisées (0 à 255).
Pas plus de jaune mais une meilleure distinction dans les verts (qui avaient tendance à fusionner dans la partie centrale pour la précédente).
Sub Dégrader()
Dim n%, i%, c As Range
n = Selection.Cells.Count
For Each c In Selection
c.Interior.Color = RGB(Int(240 * (1 - i / n) + 12), _
Int(240 * (1 - Abs(n / 2 - i) / (n / 2)) + 12), _
Int(240 * (1 - (n * 2 - i) / (n * 2)) + 12))
i = i + 1
Next c
End Sub