Страницы: 1
RSS
Макрос цвета диаграмм из ячеек с её данными и условным форматированием, Нужен макрос
 
Есть задача.В excel 2007 нужно, чтобы в круговой диаграмме дольки меняли свой цвет в зависимости,от цвета ячейки. А цвет ячейки в свою очередь зависит, от значения. Т.е. применяется условное форматирование.На сайте нашел подобный макрос в теме:  "Цвет диаграммы из ячеек с ее данными" (http://www.planetaexcel.ru/techniques/4/186/#7589)  Однако данный макрос работает только при окраске ячеек без условного форматирования.
Как добиться, чтобы цвет менялся с использованием условного форматирования?  
Изменено: Sandr - 24.03.2017 16:13:29
 
Внутри цикла тупо приравнивается цвет элемента диаграммы цвету фона ячейки.
Вам придется чуть сложнее. Нужно проверять то же условие, что и в условном форматировании и присваивать такой же цвет.

Файл вложения увидел девственно чистым...
Следствие из третьего закона Чизхолма:
"Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
 
PerfectVam действительно прикрепил не тот файл!
Можете привести пример?  
Изменено: Sandr - 24.03.2017 16:24:37
 
Если у Вас офис 2010 или моложе (больше по номеру), то Вам можно обойтись малой кровью:
заменить в имеющемся коде
Код
r.cells(1).Interior.Color
на
Код
r.cells(1).DisplayFormat.Interior.Color
Следствие из третьего закона Чизхолма:
"Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
 
Цитата
PerfectVam написал:
Если у Вас офис 2010 или моложе (больше по номеру), то Вам можно обойтись малой кровью:
заменить в имеющемся кодеКод ? 1r.cells(1).Interior.ColorнаКод ? 1r.cells(1).DisplayFormat.Interior.Color
PerfectVam офис 2007. Этот способ я тоже уже пробовал. При выполнении выдает ошибку: Run-time error 438

Файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
Изменено: Sandr - 24.03.2017 22:36:51
 
У меня получилось вот так:
Код
    If TypeName(Selection) <> "ChartArea" Then Exit Sub
    Set c = ActiveChart.SeriesCollection
    For j = 1 To c.Count
        f = c(j).Formula
        m = Split(f, ",")
        Set q = Range(m(2))
        For i = 1 To q.Cells.Count
            Set r = q.Cells(i)
            If r.FormatConditions.Count Then
                For k = 1 To r.FormatConditions.Count
                        form1 = Replace(r.FormatConditions(k).Formula1, ",", ".")
                        form2 = Replace(r.FormatConditions(k).Formula2, ",", ".")
                        If ((r.Value >= Evaluate(form1)) And (r.Value <= Evaluate(form2))) Or _
                                ((r.Value <= Evaluate(form1)) And (r.Value >= Evaluate(form2))) Then
                            c(j).Points(i).Format.Fill.ForeColor.RGB = r.FormatConditions(k).Interior.Color
                        End If
                Next k
            End If
        Next i
    Next j
Следствие из третьего закона Чизхолма:
"Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
 
PerfectVam, у нас помогают людям, которые просят помощи, а не ставят задачи. А где ставят, есть отдельный раздел.
Новичкам везде у нас дорога, новичкам везде у нас почёт.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
PerfectVam Большое спасибо! Все получилось!
Страницы: 1
Читают тему
Наверх