Страницы: 1
RSS
Раскраска столбцов диаграммы
 
День добрый. Уже который день мучаюсь с одной задачкой - можно ли раскрашивать различные столбцы диаграммы в зависимости от данных в них (т.е. если значение в ячейке от 100 до 200, то столбик красный, если от 200 до 300 - синий и т.д.) или же в зависимости от некоего условия (если значение в ячейке =1, то столбик красный, =2 - синий. но ячейка не задает размер самого столбца). Очень интересует возможность как полной закраски всех столбцоы диаграммы, так и закраска одного или двух столбцов. Ползая по интернету нашел вот такой рабочий макрос для автофигур:  
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)  
   If Not Intersect(Target, [B2]) Is Nothing Then
      If IsNumeric([B2]) = True Then
         Select Case [B2]
             Case 1 To 100:    iColor& = vbRed  
             Case 100 To 200:  iColor& = vbBlue  
             Case 200 To 300:  iColor& = vbCyan  
             Case 300 To 400:  iColor& = vbGreen  
             Case 400 To 500:  iColor& = vbYellow  
             Case 500 To 1000: iColor& = vbMagenta  
             Case Else:        iColor& = vbWhite  
         End Select  
         Me.Shapes(1).Fill.ForeColor.RGB = iColor&  
      End If  
   End If  
End Sub  
 
 
но на графики его не получается переделать...  
Спасибо )
 
Особо не вникал в условие вашей задачи. Но менять цвет столбца в диаграмме в зависимости от значения в ячейке можно, например, вот так как в аттаче. Сначала обратиться к объекту Chart а потом к его Shape и воспользоваться методом Fill последнего.
At odd moments: VBA, VB6, VB.NET, Java, Java for Android, Java Script, Action Script, Windows Scriping Host
 
Но можно ли сделать то же самое не выделяя график?
 
{quote}{login=Новичок VBA (Miнск)}{date=19.02.2009 01:13}{thema=}{post}Сначала обратиться к объекту Chart а потом к его Shape и воспользоваться методом Fill последнего.{/post}{/quote}  
Как можно сделать то же самое , но на второй диаграмме, расположенной на этом же листе?
 
Решил немного конкретизировать:  
В файле приведены условные значения для факта и бюджета. Нужно сделать такой макрос, который будет автоматом красить все столбцы факта, которые больше бюджета в зеленый цвет, а столбцы в которых факт меньше бюджета - в красный.
 
{quote}{login=avbel}{date=19.02.2009 09:51}{thema=}{post}Решил немного конкретизировать:  
В файле приведены условные значения для факта и бюджета. Нужно сделать такой макрос, который будет автоматом красить все столбцы факта, которые больше бюджета в зеленый цвет, а столбцы в которых факт меньше бюджета - в красный.{/post}{/quote}  
так ?
 
{quote}{login=Марчук}{date=19.02.2009 10:25}{thema=Re: }{post}{quote}{login=avbel}{date=19.02.2009 09:51}{thema=}{post}Решил немного конкретизировать:  
В файле приведены условные значения для факта и бюджета. Нужно сделать такой макрос, который будет автоматом красить все столбцы факта, которые больше бюджета в зеленый цвет, а столбцы в которых факт меньше бюджета - в красный.{/post}{/quote}  
так ?{/post}{/quote}  
увы, но не совсем - мне надо чтобы диаграмма была обычная, а не с накоплением (т.к. в вашей диаграмме может быть только один столбец, а мне надо от двух). Вариант с дополнительной осью и столбцом за основной, который также расскрашивается в другой цвет тоже не подходит, т.к. в финальной версии нужна поддержка раскраски 3-4 цветами. Т.е. только через макрос.
 
Похоже мне наконец-то удалось разобраться самому:  
набросал краткий макрос, который красит столбцы в зависимости от значений второго столбца.
 
{quote}{login=avbel}{date=19.02.2009 01:27}{thema=Йес!}{post}Похоже мне наконец-то удалось разобраться самому:  
набросал краткий макрос, который красит столбцы в зависимости от значений второго столбца.{/post}{/quote}  
 
Отличный способ! Единственное, у меня не получается сделать таким способом,  чтобы график был на отдельной странице! Подскажите пожалуйста!
 
Чтобы перенести график на отдельный лист, нужно на нем нажать ПКМ, там пункт Размещение Диаграммы (для 2003) или Переместить Диаграмму (2007) - и выбираете "на отдельном листе"
 
{quote}{login=Haken}{date=18.03.2010 11:16}{thema=}{post}Чтобы перенести график на отдельный лист, нужно на нем нажать ПКМ, там пункт Размещение Диаграммы (для 2003) или Переместить Диаграмму (2007) - и выбираете "на отдельном листе"{/post}{/quote}  
 
спасибо, этот способ мне знаком, но в этом случае не работает макрос окраски столбцов диаграммы в зависимости от значения..
 
Вместо строчек  
       With ActiveSheet.ChartObjects("Chart 2").Chart  
           With .SeriesCollection(2).Points(i3 - 4).Interior  
               .Color = iColor&  
           End With  
       End With  
 
Поставьте  
 
       Charts("Диаграмма").SeriesCollection(2).Points(i3 - 4).Interior.Color = iColor&  
 
"Диаграмма" - имя, как назовете лист с диаграммой
 
{quote}{login=Haken}{date=18.03.2010 01:30}{thema=}{post}Вместо строчек  
       With ActiveSheet.ChartObjects("Chart 2").Chart  
           With .SeriesCollection(2).Points(i3 - 4).Interior  
               .Color = iColor&  
           End With  
       End With  
 
Поставьте  
 
       Charts("Диаграмма").SeriesCollection(2).Points(i3 - 4).Interior.Color = iColor&  
 
"Диаграмма" - имя, как назовете лист с диаграммой{/post}{/quote}  
 
Супер, большое спасибо за информацию!
 
Здраствуйте. У меня похожая проблема. Не могли бы вы показать макрос который это делает. Я скачал прикрепленные файлы но макроса в них не обнаружил
 
Я тоже не вижу макроса.
 
См. модуль листа.
 
Всем доброго времени суток! Извините, что снова поднимаю тему, но у меня есть аналогичная задача, правда, данных намного больше и графиков, соответственно, тоже. Честно пытался переписать макрос из примера под нее: не хватило ни знаний, ни умения. Все в файле. Заранее благодарю за помощь.
 
{quote}{login=Valery}{date=10.04.2011 02:18}{thema=}{post}Всем доброго времени суток! Извините, что снова поднимаю тему, но у меня есть аналогичная задача, правда, данных намного больше и графиков, соответственно, тоже. Честно пытался переписать макрос из примера под нее: не хватило ни знаний, ни умения. Все в файле. Заранее благодарю за помощь.{/post}{/quote}  
 
можно и без макросов см пример
Спасибо
 
Спасибо, Дмитрий! Такой способ мне знаком, но, когда графиков много и нужно сохранить читабельность таблиц,не всегда удобен. В любом случае, спасибо за помощь.
 
В последней таблице необходимо настроить авто закрашивание в соответсвии с метками ряда, пробоваль сам разобраться, но никак не получается, помогите очень надо для работы.  
P.s. Файл прилагается  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
To Valery:  
Вариант..
 
Маугли, не думаю, что Valery с апреля сидит и ждёт :-)
 
:) Мне все равно..не заметил.
Страницы: 1
Читают тему
Наверх