Страницы: 1
RSS
Смена цвета маркеров данных на диаграмме в зависимости от значения не применяя условное форматирование, Изменение цвета на диаграмме (не условное форматирование)
 
Коллеги, добрый день

Просьба подсказать, есть диаграмма и там данные
50% ; 70% 110%; 99%; 200%

нужно, чтобы метки данных на диаграмме при значении 100% и меньше выделялись красным цветом.
Не могу задать код формат, нашел только вот этот код формата :# ##0_ ;[Красный]-# ##0 , но он переводит % в число и окрашивает только отрицательные значения, а мне надо положительные <=100%
Изменено: Юрий М - 14.03.2023 14:35:08
 
перейдите в режим ссылок R1C1, отметьте диапазон с данными, в условный формат запишите эту мощную формулу
Код
=RC<=1

настройте формат
удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Мне кажется я не совсем понятно выразился.

Прикладываю файл. необходимо, чтобы на графики значения окрашивались, а не в табличке  
 
Цитата
Salvator написал:
Формат ячейки,
Salvator,  Что можно понять из такого названия темы? Вот если бы Вы увидели чужую тему с таким названием - Вы поняли задача/проблему:
 
Через макрос сие вот так...
Код
Sub Маркеры_в_красный()
    If TypeName(Selection) <> "ChartArea" Then
        MsgBox "Сначала выделите диаграмму!": Exit Sub
    End If
    Set c = ActiveChart
    For j = 1 To c.SeriesCollection.Count
        f = c.SeriesCollection(j).Formula
        m = Split(f, ",")
        Set r = Range(m(2))
        For i = 1 To r.Cells.Count
        Debug.Print r.Cells(i, 1).Value
            If r.Cells(i, 1).Value < 1# Then
                ActiveChart.FullSeriesCollection(j).Points(i).DataLabel.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbRed
            Else
                ActiveChart.FullSeriesCollection(j).Points(i).DataLabel.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbBlack
            End If

        Next i
    Next j
End Sub

Название: Смена цвета маркеров данных на диаграмме в зависимости от значения не применяя условное форматирование
Изменено: tutochkin - 14.03.2023 14:16:37
 
tutochkin, Спасибо! А если графиков в файле штук 40?  
 
Цитата
А если графиков в файле штук 40?  
Или ручками, или вот так.
Код
Sub Маркеры_в_красный()
    For k = 1 To ActiveSheet.ChartObjects.Count
    ActiveSheet.ChartObjects(ActiveSheet.ChartObjects(k).Name).Activate
        Set c = ActiveChart
        For j = 1 To c.SeriesCollection.Count
            f = c.SeriesCollection(j).Formula
            m = Split(f, ",")
            Set r = Range(m(2))
            For i = 1 To r.Cells.Count
                If r.Cells(i, 1).Value <= 1# Then
                    ActiveChart.FullSeriesCollection(j).Points(i).DataLabel.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbRed
                Else
                    ActiveChart.FullSeriesCollection(j).Points(i).DataLabel.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbBlack
                End If
    
            Next i
        Next j
    Next k
End Sub

ПыСы Знаю что Activate не комильфо, но как убрать сходу не придумал...
Изменено: tutochkin - 14.03.2023 14:53:08 (<= есс-но)
 
Цитата
tutochkin: как убрать
присвоить переменной или With  ;)
Set c = ActiveSheet.ChartObjects(k)
Или сразу перебирать (не тестил)
Изменено: Jack Famous - 14.03.2023 16:46:09
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, не работает ни то ни другое... И еще несколько вариантов что пробовал. Только через активацию вышло
Страницы: 1
Читают тему
Наверх