Страницы: 1
RSS
Макрос по изменению цвета ячейки в зависимости от значения, Изменение цвета ячейки в зависимости от значения
 
Уважаемые форумчане, добрый день!
Помогите, пжл, справиться со следующей задачей.
Формируем некий динамический отчет, в котором показатели будут регулярно/ежедневно изменяться. В зависимости от установки в ячейке значения и его увеличения  (1 (желтый), 2 (оранжевый) 3 (ближе к красному) итд., цвет ячейки должен автоматически изменяться в соответствующем диапазоне к более яркому красному).
Столбцы F,G,H (от желтого по палитре к красному - как нарастающее количество нарушений). Столбец E (от зеленого к более яркому зеленому от 1 до 5).
Файл отчета прилагается.
Заранее благодарен за помощь!
Изменено: bsb - 15.03.2021 10:31:04
 
Макрос тут не нужен -уловное форматирование в помощь. - выделяете ячейки, где должно действовать данное правило. Мин значение - желтый цвет, макс -красный, аналогично с зеленым.
 
bsb, здравствуйте
Цитата
bsb: Столбцы F,G,H (от желтого по палитре к красному - как нарастающее количество нарушений)
цветовая шкала "Красный-Белый"
Цитата
bsb: Столбец E (от зеленого к более яркому зеленому от 1 до 5)
цветовая шкала "Зелёный-Белый"

Скотт Хартшорн. Условное форматирование
Изменено: Jack Famous - 15.03.2021 10:40:23
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всем большое спасибо за помощь!
 
И если нужно макросом, то можно, например, так:
Код
'В модуль листа.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    On Error Resume Next
    Set r = Intersect(Target, ActiveSheet.UsedRange)
    On Error GoTo 0
    If Not r Is Nothing Then
        myColorRange r
    End If
End Sub

Sub myColorRange(r As Range)
    Dim c As Range
    Dim v As Variant
    Dim i As Long
    For Each c In r
        v = c.Value
        If IsNumeric(v) Then
            Select Case c.Column
            Case 5
                i = RGB(255 - 255 / 5 * v, 255, 255 - 255 / 5 * v)
            Case 6, 7, 8
                i = RGB(255, 255 - 255 / 5 * v, 255 - 255 / 5 * v)
            Case Else
                i = 0
            End Select
            If i > 0 Then
                c.Interior.Color = i
            Else
                c.Interior.Pattern = xlNone
            End If
        End If
    Next
End Sub
 
Спасибо :)  
Страницы: 1
Наверх