Добрый день, ранее на форуме обсуждали, как отвязать срез для скопированной таблицы от общего кэша, чтоб изменения на срезе 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