Здравствуйте! Подскажите пожалуйста, как будет выглядеть код запуска макроса при выборе одного из параметров среза сводной таблицы? Если это вообще возможно.
Пробовал вот так, но не работает:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Boolean) If ActiveWorkbook.SlicerCaches("Срез_1").SlicerItem("МЛ").Selected = True Then ActiveWorkbook.SlicerCaches("Срез_2").SlicerItem("МЛ").Selected = True End If End Sub
[/vba]
Здравствуйте! Подскажите пожалуйста, как будет выглядеть код запуска макроса при выборе одного из параметров среза сводной таблицы? Если это вообще возможно.
Пробовал вот так, но не работает:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Boolean) If ActiveWorkbook.SlicerCaches("Срез_1").SlicerItem("МЛ").Selected = True Then ActiveWorkbook.SlicerCaches("Срез_2").SlicerItem("МЛ").Selected = True End If End Sub
Private Sub Срез1_Change() If ActiveWorkbook.SlicerCaches("Срез1").SlicerItems("МЛ").Selected = True Then ActiveWorkbook.SlicerCaches("Срез2").SlicerItems("МЛ").Selected = True End If End Sub
[/vba] [moder]Коды макросов нужно обрамлять специальными тегами - кнопка # На первый раз поправил Вам оба поста
Другой вариант, но тоже не выходит: [vba]
Код
Private Sub Срез1_Change() If ActiveWorkbook.SlicerCaches("Срез1").SlicerItems("МЛ").Selected = True Then ActiveWorkbook.SlicerCaches("Срез2").SlicerItems("МЛ").Selected = True End If End Sub
[/vba] [moder]Коды макросов нужно обрамлять специальными тегами - кнопка # На первый раз поправил Вам оба постаPomorNick
Сообщение отредактировал PomorNick - Четверг, 24.12.2015, 09:55
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) If ActiveWorkbook.SlicerCaches("Срез_й").SlicerItems("а").Selected = True Then Application.EnableEvents = 0 ActiveWorkbook.SlicerCaches("Срез_яыу").SlicerItems("а").Selected = True Application.EnableEvents = 1 End If End Sub
[/vba] Поскольку Вы свою таблицу не приложили, то названия срезов и полей у меня свои
Так нужно? В модуль листа. [vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) If ActiveWorkbook.SlicerCaches("Срез_й").SlicerItems("а").Selected = True Then Application.EnableEvents = 0 ActiveWorkbook.SlicerCaches("Срез_яыу").SlicerItems("а").Selected = True Application.EnableEvents = 1 End If End Sub
[/vba] Поскольку Вы свою таблицу не приложили, то названия срезов и полей у меня свои_Boroda_
К сожалению, PowerPivot на рабочей машине нет возможности поставить, иначе именно этим методом бы и воспользовался. Речь идет о стандартной сводной таблице.
К сожалению, PowerPivot на рабочей машине нет возможности поставить, иначе именно этим методом бы и воспользовался. Речь идет о стандартной сводной таблице.PomorNick
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) ActiveWorkbook.Sheets("Sheet1").PivotTables("PivotTable1").PivotCache.Refresh End Sub
[/vba] А как сделать чтобы обновлялась другая сводная2 после обновления сводной1 - событие - дает ошибку!
Boroda_ [vba]
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) ActiveWorkbook.Sheets("Sheet1").PivotTables("PivotTable1").PivotCache.Refresh End Sub
[/vba] А как сделать чтобы обновлялась другая сводная2 после обновления сводной1 - событие - дает ошибку!skais675
Vlad skype: skais675 email: skais675@mail.ru
Сообщение отредактировал skais675 - Вторник, 14.02.2017, 17:38