Подскажите, пожалуйста, как решить следующую задачу: Необходимо, создать следующее условие: Если значения внутри ячейки меньше столбца "E" - красный (22) Если в диапазоне от "Е" до "F" - желтый (44) Если больше "F" - зеленый (50)
Не могу понять как написать, чтобы красились значения столбца "D" (выделил на скрине)
Использую макрос - он позволяет красить столбцы "B" и "С", а значение из столбца "D" не получается
Mershik, спасибо за такой оперативный ответ. Мне нужны все точки. Зачастую их бывает на порядок больше, по этому тут нужна автоматизация
Честно сказать, я только начинаю осваивать макросы, этот делал по шаблону, по этому если вы напрямую укажите на ошибку, либо что необходимо изменить - буду благодарен!
Sub Макрос1()
k = Cells(Rows.Count, 1).End(xlUp).Row - 1
For i = 1 To k
ActiveChart.FullSeriesCollection(1).Points(i).DataLabel.Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent4
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
Next i
End Sub
В моем случае необходима привязка к условию: красится в красный - если значения меньше "х" , красится в желтый, если значения от "х" до "y" и зеленым если больше "х"
А в коде, который вы прислали мы просто красим - либо я не понял
karenolk, не понимаю как вы получаете цвета красный 22 и так далее...
Код
Sub Change_color()
'до 44% - черный
'от 45 до 64 - красный
'от 65 до 84 - желтый
'от 85 до 100 - зеленый
Dim li As Long, oChrt As ChartObject, oPoint As Point, oPoint2 As Point, lColor As Long
'назначаем переменной значение "Диаграммы 2" для более удобного обращения к диаграмме
Set oChrt = ActiveSheet.ChartObjects("Диаграмма 1")
'отключаем обновление экрана, чтобы не мелькало
Application.ScreenUpdating = 0
'идем циклом по столбцам(от 1 до 12)
For li = 2 To 11
'проверяем значение ячеек(т.к. данные в ячейках в процентах - умножаем на 100)
Select Case Cells(li, 2) * 100
'если меньше 45 - окрашиваем в черный(и т.д. - условия описаны выше)
'присваиваем переменной lColor значение в зависимости от значения в ячейке
'чтобы затем одной строкой поменять цвет ряда на диаграмме
Case Is < Cells(li, 4) * 100
lColor = 22
Case Cells(li, 4) * 100 To Cells(li, 5) * 100
lColor = 44
Case Is > Cells(li, 5) * 100
lColor = 50
End Select
'назначаем переменной oPoint значение определенного ряда диаграммы
Set oPoint = oChrt.Chart.SeriesCollection(1).Points(li - 1)
'меняем цвет
oPoint.Interior.ColorIndex = lColor
'Если меньше столбца "E" - красный (22)
'Если в диапазоне от "Е" до "F" - желтый (44)
'Если больше "F" - зеленый (50)
If Cells(li, 4) < Cells(li, 5) Then
lColor2 = 3
ElseIf Cells(li, 4) >= Cells(li, 5) And Cells(li, 4) < Cells(li, 6) Then
lColor2 = 6
Else
lColor2 = 4
End If
oChrt.Chart.SeriesCollection(3).Points(li - 1).DataLabel.Interior.ColorIndex = lColor2
Next li 'следующая ячейка в цикле
'возвращаем обновление экрана - обязательно
Application.ScreenUpdating = 1
End Sub