Здравствуйте! Подскажите, пожалуйста, как должен выглядеть код макроса, который позволит задавать степень прозрачности, равную 1, для рядов, в заголовках которых имеется ноль? В приложенном файле прозрачность задана вручную - выбрано свойство "нет заливки", но необходимо автоматически задавать прозрачность для таких рядов.
Здравствуйте! Подскажите, пожалуйста, как должен выглядеть код макроса, который позволит задавать степень прозрачности, равную 1, для рядов, в заголовках которых имеется ноль? В приложенном файле прозрачность задана вручную - выбрано свойство "нет заливки", но необходимо автоматически задавать прозрачность для таких рядов.vdovinaalisa2016
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]срабатывает при обновлении сводной
как-то так наверное [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
Nic70y, большое спасибо за помощь! Подскажите, пожалуйста, можно ли то же самое сделать с помощью свойства Transparency? Поскольку в будущем потребуется изменить значение прозрачности до 0,7
Nic70y, большое спасибо за помощь! Подскажите, пожалуйста, можно ли то же самое сделать с помощью свойства Transparency? Поскольку в будущем потребуется изменить значение прозрачности до 0,7vdovinaalisa2016
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]
вдруг правильно [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