Isso usa células em A1 para definir a condição de células em D1: D9 - alterar intervalos para atender às suas necessidades:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" and Sh.Name="Sheet1" Then
Sheets(1).Range("D1:D9").FormatConditions(1).Font.Color = Target.Font.Color
Sheets(1).Range("D1:D9").FormatConditions(1).Interior.Color = Target.Interior.Color
End If
End Sub
Depois de alterar a cor, você terá que alterar a célula editando-a e pressionando Enter (para que o evento de alteração seja acionado)
as condições de formato são ordenadas pela ordem em que as regras são aplicadas. Existem muito mais alterações que poderiam ser aplicadas, basta adicionar outro .FormatConditions(1).Whatever = Target.Whatever
ao código
Este código não configura nenhuma condição, apenas altera o (s) que estão lá. As condições são numeradas na ordem da regra exibida na tela
se você não quiser usar a formatação condicional e apenas colorir as células, poderá fazer um loop de cada célula dessa maneira:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Or Sh.Name <> "Sheet1" Then Exit Sub
' exit if not in key range (formatting key is A:A on sheet1
If VarType(Target) > vbArray Then Exit Sub
' if multiple cells are changed at once, then exit, as i'm not going to fight with multi cell change
Dim TargetRange As Range
Dim lCell As Object
Set TargetRange = Sh.Range("D1:D9")
' changing cells in this area
For Each lCell In TargetRange.Cells
If lCell.Value = Target.Value Then
' only change cells that match the edited cell
lCell.Font.Color = Target.Font.Color
lCell.Interior.Color = Target.Interior.Color
' copy whatever you feel needs to be copied
End If
Next
End Sub