Страницы: 1
RSS
С помощью макроса сменить заливку точки-маркера в графике
 
Здравствуйте. Есть точечная диаграмма.

Необходимо с помощью макроса изменить заливку маркёра в соответствии с заливкой ряда ячеек, которые не участвуют в построении диаграммы.

Т.е. в приложенном изображении диаграмма строятся по столбцу S и T, а цвет заливки берется из столбца Q.

Также желательно, чтобы в коде макроса можно было поменять диапазон значений залитых ячеек.
Изменено: Кирилл Иржевский - 03.04.2022 20:14:25
 
Цитата
Кирилл Иржевский написал:
Необходимо с помощью макроса изменить заливку маркёра в соответствии с заливкой ряда ячеек, которые не участвуют в построении диаграммы.
Это как? Тех что нет на диаграмме заливать?
Я заливку делал так. К заливке ячеек не привязывался, впрочем там поправить всего ничего.

Код
Public Sub color_graph() 
    ActiveSheet.ChartObjects("Диаграмма 1").Activate 
    For Each icell In [C2:C102] 
        ActiveChart.FullSeriesCollection(1).Points(icell.Row - 1).Select 
        Selection.Format.Fill.ForeColor.RGB = RGB(255, 255, 255) 
If icell.Value = 0 Then Selection.Format.Fill.ForeColor.RGB = RGB(0, 255, 0) 
If icell.Value = 1 Then Selection.Format.Fill.ForeColor.RGB = RGB(0, 0, 255) 
If icell.Value = 2 Then Selection.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)     
    Next 
End Sub 

где
[C2:C102] - столбец указаний о заливке. Число точек равно числу маркеров графика.
Диаграмма 1 - название диаграммы, которую требуется обработать.
Изменено: tutochkin - 03.04.2022 20:55:42
 
Цитата
написал:
К заливке ячеек не привязывался, впрочем там поправить всего ничего.
Если не сложно, можете этот код написать, пожалуйста?
 
Цитата
Кирилл Иржевский написал:
Если не сложно, можете этот код написать, пожалуйста?
Давайте файл пример - посмотрим.
 
Цитата
написал:
Давайте файл пример - посмотрим.
Ну вот, что-то типо такого
 
, не растягивайте сообщение, разбавляя его пустыми строками.
 
Цитата
Кирилл Иржевский написал:
Ну вот, что-то типо такого
Код
Public Sub color_graph()
    ActiveSheet.ChartObjects("Диаграмма 1").Activate
    For Each icell In [A2:A24]
        ActiveChart.FullSeriesCollection(1).Points(icell.Row - 1).Select
        Selection.Format.Fill.ForeColor.RGB = icell.DisplayFormat.Interior.Color
    Next
End Sub
 
Цитата
написал:
1234567Public Sub color_graph()    ActiveSheet.ChartObjects("Диаграмма 1").Activate    For Each icell In [A2:A24]        ActiveChart.FullSeriesCollection(1).Points(icell.Row - 1).Select        Selection.Format.Fill.ForeColor.RGB = icell.DisplayFormat.Interior.Color    NextEnd Sub
А что за что здесь отвечает? Просто мне нужно этот макрос много раз использовать для разных данных
 
Цитата
Кирилл Иржевский написал:
А что за что здесь отвечает? Просто мне нужно этот макрос много раз использовать для разных данных
Цитата
tutochkin написал:
[C2:C102] - столбец указаний о заливке. Число точек равно числу маркеров графика.
Диаграмма 1 - название диаграммы, которую требуется обработать.
Изменено: tutochkin - 03.04.2022 21:38:35
 
Цитата
написал:
tutochkin  написал:[C2:C102]  - столбец указаний о заливке. Число точек равно числу маркеров графика.Диаграмма 1 - название диаграммы, которую требуется обработать.
Понял, спасибо огромное!
 
Цитата
написал:
Диаграмма 1 - название диаграммы, которую требуется обработать.
Возникла проблема. Когда ввожу название новой диаграммы, пишет что не может найти её. Нужно же брать название, которое сверху диаграммы?
 
Цитата
Кирилл Иржевский написал:
Нужно же брать название, которое сверху диаграммы?

И ещё про сдвиг диапазона не забудьте.
Изменено: tutochkin - 04.04.2022 10:41:23
 
tutochkin, Понял, спасибо огромное!
Изменено: Кирилл Иржевский - 04.04.2022 17:30:29
Страницы: 1
Наверх