Автоматическое обновление сводной таблицы

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
tosha22
Сообщения: 8
Зарегистрирован: 13 мар 2008, 10:59

На листе Excel сводная таблица. Исходные данные на другом листе. Как сделать чтобы при изменении исходных данных автоматически обновлялась сводная таблица? Причем обновлялась также, как если бы пользователь вручную нажал кнопку "Обновить".
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Если так, навскидку...
Можно "повесить" на кнопку "Обновить" макрос и запускать его при обновлении листа. Где-то так (данные на листе1):

Код: Выделить всё

Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Лист2").PivotTables("СводнаяТаблица1").PivotCache.Refresh
End Sub
tosha22
Сообщения: 8
Зарегистрирован: 13 мар 2008, 10:59

Вот такой макрос обновляет сводную таблицу, но обновление "неполное", т.е. оно не аналогично тому, если просто нажать на кнопку "обновить".

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Лист2").PivotTables("СводнаяТаблица1").PivotCache.Refresh
End Sub

например, строчки не выстраиваются в алфавитном порядке при использовании такого макроса...
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

У меня нет сейчас перед собой сводной таблицы, чтобы проверить.
Хотя, по идее, должно сработать.
tosha22
Сообщения: 8
Зарегистрирован: 13 мар 2008, 10:59

Разобрался, в чем глюк такого обновления. Дело в том, что на листе с исходными данными у меня ячейки с проверкой из списка (там фамилии и их можно выбрать только из определенного набора: Иванов, Петров, Сидоров). Когда я из списка выбираю одну фамилию вместо другой, Excel не распознает это действие как обновление информации на листе с исходными данными. В этом и была вся загвоздка.
Думаю, заставить Excel считать вышеописанное действо обновлением невозможно, хотя возможно я и ошибаюсь. Если нет - подскажите, пожалуйста, как это сделать. спасибо!
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

При таком раскладе Worksheet_SelectionChange видимо не подойдет.
Нужно обрабатывать событие выбора из списка. Или еще как, прикинуть надо.
p.s.
Посмотрите здесь, может что подойдет
http://www.msoffice.nm.ru/faq/cell2.htm#Validation
Ответить