Après ouverture du fichier, je m'aperçois que j'ai compris le problème un peu de travers...
Un essai en VBA (le code est à coller dans le module de la feuille concernée) :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Integer, Col As Integer
If Not Intersect(Target, Range("B4:V40")) Is Nothing Then
Lig = Target.Row
If Len(Cells(Lig, 2)) > 1 Then
For Col = 3 To 20
If Cells(Lig, Col) > 0 Then Cells(Lig, Col).Interior.Color = Cells(Lig, 2).Interior.Color Else Cells(Lig, Col).Interior.Color = xlNone
Next Col
End If
End If
End Sub
Le fichier :