Страницы: 1
RSS
Связать срез у двух разных сводных таблиц
 
Добрый день, ранее на форуме обсуждали, как отвязать срез для скопированной таблицы от общего кэша, чтоб изменения на срезе 1 не влияли на срез 2.
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=128141&a..
я сейчас пытаюсь решить обратную задачу, чтоб получить для двух разных сводных таблиц с разным кэшем единый срез.

пока что дошел до того, что это будет макрос, который при изменении отбора на срезе 1 будет искать такие же значения на срезе 2 и ставить им отметку "True"

но в макросах я не силен, и настроить так чтоб макрос работал с двумя срезами я не сумел. прошу помощи в макросе или подсказку как можно решить этот задачу другим методом.
 
примерно так будет работать
можно повесить на событие изменения сводной
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)


Код
Sub Sliсer_Copy()
 With ActiveWorkbook
  Set sl_1 = .SlicerCaches("Срез_товар")
  Set sl_2 = .SlicerCaches("Срез_товар1")
    On Error Resume Next
    For i = 1 To sl_1.SlicerItems.Count
      sl_2.SlicerItems(sl_1.SlicerItems(i).Value).Selected = sl_1.SlicerItems(i).Selected
    Next
 End With
End Sub
Спасибо
 
R Dmitry, повесить макрос на изменение сводной хорошая идея, но вот только сводных на листе две и выполнение макроса уходит в цикл, как можно этого избежать? сделать так чтоб следил за изменением только одной таблицы или встроить остановку в код макроса?
Код
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
 With ActiveWorkbook
 .SlicerCaches("Срез_товар1").ClearManualFilter
  Set sl_1 = .SlicerCaches("Срез_товар")
  Set sl_2 = .SlicerCaches("Срез_товар1")
    On Error Resume Next
    For i = 1 To sl_1.SlicerItems.Count
      sl_2.SlicerItems(sl_1.SlicerItems(i).Value).Selected = sl_1.SlicerItems(i).Selected
    Next
 End With
 Stop
End Sub
 
Просто уеажите имя сводной на которую не обновлять срез
If target.name="pivot1" then exit sub
Спасибо
Страницы: 1
Наверх