В Excel VBA - worksheet_calculate
написана процедура для изменения цвета фигур на основе значений в соответствующих ячейках, существует тот же лист, который просматривается из другого листа в той же книге.
Список (форма контроля) используется для данных нескольких столбцов.
Код отлично работает для существующих данных.
Всякий раз, когда исходные значения вводятся вручную, VBA выдает ошибку
код
Option Explicit
Private Sub Worksheet_Calculate()
Dim Target As Range
Set Target = Range("T6:T35")
Dim v1 As Integer
Dim v2 As Integer
Dim s As Integer
Dim t As Integer
Dim i As Integer
Dim Shapename As String
If Intersect(Target, Range("T6:T35")) Is Nothing Then Exit Sub
v1 = Left(Range("N6"), 2)
v2 = Right(Range("N6"), 2)
s = 19
t = 20
For i = 6 To 35
Shapename = Cells(i, s)
If Cells(i, t) < Range("N5") Then
ActiveSheet.Shapes(Shapename).Fill.ForeColor.RGB = vbRed
ElseIf Cells(i, t) >= v1 And Cells(i, t) < v2 Then
ActiveSheet.Shapes(Shapename).Fill.ForeColor.RGB = vbYellow
ElseIf Cells(i, t) >= Range("N7") Then
ActiveSheet.Shapes(Shapename).Fill.ForeColor.RGB = vbGreen
End If
Next i
End Sub