Для того чтобы раскрашивание ячеек происходило по изменению какого то значения, раскрашивание ячеек надо будет перенести в стандартную процедуру,
запускаемую по событию(изменению) на листе.
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range)
If проверка условия Then
Range("D3").Interior.Color = 65535 'условие выполнено - закрасили ячейку D3 жёлтым цветом
Else
Range("D3").Interior.Pattern = xlNone 'условие не выполнено - ячейку D3 лишили заливки
End If
End Sub |
Условное форматирование не работает, зато постоянно работает (после КАЖДОГО изменения на листе) процедура Worksheet_Change,
которая отслеживает изменения на листе, проверяет условие на закраску ячеек и окрашивает их, при выполнении нужных условий, или убирает заливку при не выполнении нужных условий.