Добрый день всем!
Помогите пожалуйста со следующей проблемой:
Есть сводная таблица с поступлениями от клиентов. Есть необходимость фильтровать поступления поквартально, нарастающим итогом и т.д.
В данных, из которых таблица формируется, клиенты учитываются помесячно. Чтобы не "грузить" конечного пользователя выбором месяцев в фильтре, нарисовал выбора квартала, а дальше средствами VBA в фильтре выбираются необходимые месяцы (фильтр для пользователя вообще не виден).
Использую код:
Код |
---|
Sub квартал_1()
'ActiveSheet.PivotTables("СводнаяТаблица1").ManualUpdate = True
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Месяц").ClearAllFilters
With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Месяц")
.PivotItems("4").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
End With
'ActiveSheet.PivotTables("СводнаяТаблица1").ManualUpdate = False
End Sub |
Проблема в том, что после каждой строки .PivotItems("1").Visible сводная таблица пересчитывается. Получается при выборе конкретного квартала таблица пересчитывается 3 раза, при выборе полугодия - 6, и т.д. Учитывая, что в таблице 6000 строк, вычисления происходят не быстро.
Возможно ли каким-то образом средствами VBA сначала настроить фильтр, а потом один раз пересчитать сводную таблицу? Если VBA не использовать, то так и происходит - я ставлю нужные галочки, нажимаю ОК и таблица пересчитывается.
Пробовал код
Код |
---|
ActiveSheet.PivotTables("СводнаяТаблица1").ManualUpdate = True
|
не помогает. Все равно постоянно пересчитывает. Отключение автоматического расчета формул тоже не работает. Помогите в какую сторону копать....