Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Прозрачность рядов диаграммы с vba - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Прозрачность рядов диаграммы с vba (Графики и диаграммы/Charts)
Прозрачность рядов диаграммы с vba
vdovinaalisa2016 Дата: Четверг, 01.12.2022, 08:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте! Подскажите, пожалуйста, как должен выглядеть код макроса, который позволит задавать степень прозрачности, равную 1, для рядов, в заголовках которых имеется ноль? В приложенном файле прозрачность задана вручную - выбрано свойство "нет заливки", но необходимо автоматически задавать прозрачность для таких рядов.
К сообщению приложен файл: 6765203.xlsx (17.9 Kb)
 
Ответить
СообщениеЗдравствуйте! Подскажите, пожалуйста, как должен выглядеть код макроса, который позволит задавать степень прозрачности, равную 1, для рядов, в заголовках которых имеется ноль? В приложенном файле прозрачность задана вручную - выбрано свойство "нет заливки", но необходимо автоматически задавать прозрачность для таких рядов.

Автор - vdovinaalisa2016
Дата добавления - 01.12.2022 в 08:05
Nic70y Дата: Четверг, 01.12.2022, 13:38 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8708
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
как-то так наверное
[vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    ActiveSheet.ChartObjects("Диаграмма 1").Activate
    a = ActiveChart.SeriesCollection.Count
    For b = 1 To a
        c = ActiveChart.SeriesCollection(b).Formula
        d = Left(c, InStr(c, ",") - 1)
        e = Mid(d, InStr(d, "!") + 1, 25)
        f = Application.Match(0, Range(e), 0)
        If IsNumeric(f) Then
            ActiveChart.SeriesCollection(b).Format.Fill.Visible = msoFalse
        Else
            ActiveChart.SeriesCollection(b).Format.Fill.Visible = msoTrue
        End If
    Next
End Sub
[/vba]срабатывает при обновлении сводной
К сообщению приложен файл: 222.xlsm (23.4 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениекак-то так наверное
[vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    ActiveSheet.ChartObjects("Диаграмма 1").Activate
    a = ActiveChart.SeriesCollection.Count
    For b = 1 To a
        c = ActiveChart.SeriesCollection(b).Formula
        d = Left(c, InStr(c, ",") - 1)
        e = Mid(d, InStr(d, "!") + 1, 25)
        f = Application.Match(0, Range(e), 0)
        If IsNumeric(f) Then
            ActiveChart.SeriesCollection(b).Format.Fill.Visible = msoFalse
        Else
            ActiveChart.SeriesCollection(b).Format.Fill.Visible = msoTrue
        End If
    Next
End Sub
[/vba]срабатывает при обновлении сводной

Автор - Nic70y
Дата добавления - 01.12.2022 в 13:38
vdovinaalisa2016 Дата: Четверг, 01.12.2022, 20:59 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, большое спасибо за помощь! Подскажите, пожалуйста, можно ли то же самое сделать с помощью свойства Transparency? Поскольку в будущем потребуется изменить значение прозрачности до 0,7
 
Ответить
СообщениеNic70y, большое спасибо за помощь! Подскажите, пожалуйста, можно ли то же самое сделать с помощью свойства Transparency? Поскольку в будущем потребуется изменить значение прозрачности до 0,7

Автор - vdovinaalisa2016
Дата добавления - 01.12.2022 в 20:59
Nic70y Дата: Пятница, 02.12.2022, 08:25 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8708
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
вдруг правильно
[vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    ActiveSheet.ChartObjects("Диаграмма 1").Activate
    a = ActiveChart.SeriesCollection.Count
    For b = 1 To a
        c = ActiveChart.SeriesCollection(b).Formula
        d = Left(c, InStr(c, ",") - 1)
        e = Mid(d, InStr(d, "!") + 1, 25)
        f = Application.Match(0, Range(e), 0)
        g = ActiveChart.SeriesCollection(b).Format.Fill.ForeColor
        g_r = g Mod 256
        g_g = (g / 256) Mod 256
        g_b = g / 65536
        With ActiveChart.SeriesCollection(b).Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(g_r, g_g, g_b)
            If IsNumeric(f) Then
                .Transparency = 0.4
            Else
                .Transparency = 0
            End If
        End With
    Next
End Sub
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщениевдруг правильно
[vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    ActiveSheet.ChartObjects("Диаграмма 1").Activate
    a = ActiveChart.SeriesCollection.Count
    For b = 1 To a
        c = ActiveChart.SeriesCollection(b).Formula
        d = Left(c, InStr(c, ",") - 1)
        e = Mid(d, InStr(d, "!") + 1, 25)
        f = Application.Match(0, Range(e), 0)
        g = ActiveChart.SeriesCollection(b).Format.Fill.ForeColor
        g_r = g Mod 256
        g_g = (g / 256) Mod 256
        g_b = g / 65536
        With ActiveChart.SeriesCollection(b).Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(g_r, g_g, g_b)
            If IsNumeric(f) Then
                .Transparency = 0.4
            Else
                .Transparency = 0
            End If
        End With
    Next
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 02.12.2022 в 08:25
vdovinaalisa2016 Дата: Пятница, 02.12.2022, 12:35 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, огромное спасибо! Все получилось
 
Ответить
СообщениеNic70y, огромное спасибо! Все получилось

Автор - vdovinaalisa2016
Дата добавления - 02.12.2022 в 12:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Прозрачность рядов диаграммы с vba (Графики и диаграммы/Charts)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!