Доброго времени суток. Подскажите как решить проблему.
Есть ячейка C21 с числом от 0 до 100. И нужно как-то закрасить столбец C4:C19 - цветами зеленым, желтым и красным (не УФ). C14:C19 - это зеленый цвет, C9:C13 - это желтый цвет, C8:C4 - это красный цвет, или белый цвет (если число в C21 - слишком мало для ячейки столбца - определенного уровня).
Каждая ячейка из этого разноцветного столбца имеет числовое сопоставление (оно записано в столбце F - для наглядности, но так этого столбца на листе нет). Ячейка C4 - равна числу от 90 до 100. Ячейка C19 - равна числу от 0 до 6. Например при числе 82 - столбец C будет закрашен до ячейки C6, которая соответствует уровню от 78 до 84.
Как это реализовать, чтобы при смене значения в ячейке C21 - менялась бы и закраска столбца C4:C19 ?
Доброго времени суток. Подскажите как решить проблему.
Есть ячейка C21 с числом от 0 до 100. И нужно как-то закрасить столбец C4:C19 - цветами зеленым, желтым и красным (не УФ). C14:C19 - это зеленый цвет, C9:C13 - это желтый цвет, C8:C4 - это красный цвет, или белый цвет (если число в C21 - слишком мало для ячейки столбца - определенного уровня).
Каждая ячейка из этого разноцветного столбца имеет числовое сопоставление (оно записано в столбце F - для наглядности, но так этого столбца на листе нет). Ячейка C4 - равна числу от 90 до 100. Ячейка C19 - равна числу от 0 до 6. Например при числе 82 - столбец C будет закрашен до ячейки C6, которая соответствует уровню от 78 до 84.
Как это реализовать, чтобы при смене значения в ячейке C21 - менялась бы и закраска столбца C4:C19 ?ВасилисаЛукьянчикова
Из расчета на строкую последовательность +6 можно без массива [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$C$21" Then Exit Sub [c4].Resize(5).Interior.ColorIndex = 3 [c4].Offset(5).Resize(5).Interior.ColorIndex = 6 [c4].Offset(10).Resize(6).Interior.ColorIndex = 4 If Int(16 - Target.Value / 6) > 0 Then [c4].Resize(Int(16 - Target.Value / 6)).Interior.ColorIndex = 0 End Sub
[/vba]
Из расчета на строкую последовательность +6 можно без массива [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$C$21" Then Exit Sub [c4].Resize(5).Interior.ColorIndex = 3 [c4].Offset(5).Resize(5).Interior.ColorIndex = 6 [c4].Offset(10).Resize(6).Interior.ColorIndex = 4 If Int(16 - Target.Value / 6) > 0 Then [c4].Resize(Int(16 - Target.Value / 6)).Interior.ColorIndex = 0 End Sub