Parfait.
Je l'ai un peu amélioré car la mise à jour devant être faite sur une plage importante (1000 cellules, majoritairement vides), les boucles "for each" étaient un peu longues.
Sub MAJdesCouleurs()
Dim c As Range
For Each d In Range("m38:pw1000")
If d.Value <> "" Then
For Each c In Range("k2:k23" & Range("k" & Rows.Count).End(xlUp).Row)
If c = d Then
d.Interior.Color = c.Interior.Color
Exit For
End If
Next c
End If
Next d
End Sub
merci