Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Лена21 от 19.06.2013, 11:32

Название: Гиперссылка плюс фильтр: два в одном.
Отправлено: Лена21 от 19.06.2013, 11:32
Здравствуйте.

У меня не получается решить в MsExcel следующий вопрос:

чтобы при нажатии на гиперссылку переходило на определенный лист в этой же книге (это вроде легко, у меня получилось) и главное - чтобы отображались не все строчки, а только отфильтрованные по определенному условию (например,  столбец А = "Магазин1").

Можно ли организовать такой переход, используя только функцию "Гиперссылка" (либо другие функции), или же нужно использовать макросы?

Спасибо.

P.S. Извините за тупое название темы. Это первое, что пришло в голову.
Название: Re: Гиперссылка плюс фильтр: два в одном.
Отправлено: Шпец Докапыч от 19.06.2013, 12:23
Вот такой однострочный макрос решает задачу:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    ActiveSheet.Range("магазины").AutoFilter 1, Target.TextToDisplay
End Sub


Можно заморочиться без макросов и пользовательских функций, но тогда и данные в таблице по ссылке надо будет фильтровать (забирать из основной таблицы) формулами, т.к. фильтр и расширенный фильтр не обновляются автоматически.
Название: Re: Гиперссылка плюс фильтр: два в одном.
Отправлено: Лена21 от 19.06.2013, 15:22
Спасибо вам.
Это вроде то, что нужно. Намного удобнее, чем с присваивать макросы кнопкам.
И главный вопрос: как этот макрос перенести в свой документ?
Если простым копированием, то при запуске весь мой лист становится чистым.
Название: Re: Гиперссылка плюс фильтр: два в одном.
Отправлено: Лена21 от 19.06.2013, 15:33
Кажется, получается!
Простым перенесением кусков своего документа в ваш!
Спасибо еще раз.
Название: Re: Гиперссылка плюс фильтр: два в одном.
Отправлено: Шпец Докапыч от 19.06.2013, 17:15
Пожалуйста.
Макрос находится в модуле листа. Он вызывается по событию: переход по любой ссылке. Реакцию на другие события можно назначить, выбрав интересующее из списка доступных процедур (см. скрин).
Название: Re: Гиперссылка плюс фильтр: два в одном.
Отправлено: GRKRND от 01.08.2016, 23:45
Дабы не создавать новую тему оживлю эту, потому что задача похожая.
1. Есть исходные данные - перечень транзакций, у каждой есть признаки "период", "статья", "сумма". В примере они на листе "data"
2. Есть свод, который формируется по периодам и статьям, то есть суммирует все значения "сумма" для каждой пары "период"-"статья". В примере они на листе "total".

Собственно дальше задача: каждое значение на листе "total" должно быть гиперссылкой, нажатие на которую перебрасывает на лист "data" и применяет фильтр оставляя только те транзакции, которые сформировали значение (с которого совершен переход).

По сравнению с ранее предложенным решением разница в том, что фильтр должен быть применен не по содержимому текста гиперссылки, которое является динамическим, а по адресу ячейки, с которой совершается перевод. Для целей фильтрации на листе "data" добавлен столбец который определяет, в какую ячейку попадет каждая из транзакций.
Собственно интуиция мне подсказывает, что надо менять куски "ByVal Target As Hyperlink" и/или "Target.TextToDisplay", но на что их менять я не соображу.
Название: Re: Гиперссылка плюс фильтр: два в одном.
Отправлено: Serge 007 от 02.08.2016, 20:27
Цитата: GRKRND от 01.08.2016, 23:45...Дабы не создавать новую тему...
Зачем Вы вредите форуму, крадя у него его единственное предназначение - новые темы?

Цитата: GRKRND от 01.08.2016, 23:45..потому что задача похожая...
"Похожая" не значит "такая же", а следовательно - вопрос задавать надо в новой теме, потому что это новый вопрос