Страница 1 из 1

Макросы в Exel

Добавлено: 26 мар 2008, 10:52
Aldrun
Мне нужно сделать отчет в Exel. Отчет получился из ряда сводных таблиц с выборкой по ВПР. Получается при заполнении данных на одном листе Exel нужно обновлять промежуточную сводную таблицу на другом листе, и только на третьем обновив сводную таблицу получить результат. Мне нужно избежать промежуточных обновлений. Посоветовали сделать макрос. Как его сделать подскажите пожалуйста кто нибудь??? :confused:

Re: Макросы в Exel

Добавлено: 26 мар 2008, 11:03
VictorM
Aldrun, а вот это Вы смотрели?
http://forum.developing.ru/showthread.php?t=13360

Re: Макросы в Exel

Добавлено: 26 мар 2008, 11:11
Aldrun
VictorM писал(а):Aldrun, а вот это Вы смотрели?
http://forum.developing.ru/showthread.php?t=13360
""Можно "повесить" на кнопку "Обновить" макрос и запускать его при обновлении листа."" Можно расписать поподробнее как это сделать? Я с макросами не разу не сталкивался...

Re: Макросы в Exel

Добавлено: 26 мар 2008, 11:25
VictorM
В модуле рабочего листа с данными размещаете код:

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

Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Лист2").PivotTables("СводнаяТаблица1").PivotCache.Refresh
End Sub
теперь при любых изменениях на листе будет срабатывать макрос имитирующий нажатие кнопки "Обновить".
В примере содная таблица находится на Листе2

Re: Макросы в Exel

Добавлено: 26 мар 2008, 11:28
Aldrun
Спасибо. Сейчас попробую...

Re: Макросы в Exel

Добавлено: 01 апр 2008, 11:42
Aldrun
День добрый! У меня большая проблема с этим макросом - все тормозит при каждом щелчке мыши...
Можно ли сделать макрос который будет обновлять все сводные таблицы в документе при переходе с одного листа на другой. Помогите пожалуйста кто-нибудь. :confused:

Re: Макросы в Exel

Добавлено: 01 апр 2008, 13:37
Serge_Bliznykov
Ну, если Вы знаете, что делаете...

Вместо SelectionChange вставьте его в макросы книги (щелкните на ЭтаКнига)
и там есть

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

а может лучше его оставить в листе, только вместо реакции на смену текущей ячейки сделать
повесить этот макрос на изменение данных:
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Re: Макросы в Exel

Добавлено: 01 апр 2008, 13:38
VictorM
Aldrun, на то он и Worksheet_SelectionChange :rolleyes: . При большом объеме данных тормоза будут приличные. Попробуйте сделать так. Закоментируйте код в модуле рабочего листа с данными, а в модуле листа таблицы поместите

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

Private Sub Worksheet_Activate()
Sheets("Лист2").PivotTables("СводнаяТаблица1").PivotCache.Refresh
End Sub
теперь макрос будет срабатывать при переходе с листа данных на лист таблицы.

Re: Макросы в Exel

Добавлено: 01 апр 2008, 13:41
Aldrun
Спасибо всем. Попробую разобраться :)

Re: Макросы в Exel

Добавлено: 01 апр 2008, 13:45
VictorM
Serge_Bliznykov, конечно, вариантов как всегда, куча :) . Теперь самому Aldrun выбирать, что ему больше подойдет.