Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Гиперссылка плюс фильтр: два в одном.

Автор Лена21, 19.06.2013, 11:32

« назад - далее »

Лена21

Здравствуйте.

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

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

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

Спасибо.

P.S. Извините за тупое название темы. Это первое, что пришло в голову.

Шпец Докапыч

Вот такой однострочный макрос решает задачу:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    ActiveSheet.Range("магазины").AutoFilter 1, Target.TextToDisplay
End Sub


Можно заморочиться без макросов и пользовательских функций, но тогда и данные в таблице по ссылке надо будет фильтровать (забирать из основной таблицы) формулами, т.к. фильтр и расширенный фильтр не обновляются автоматически.
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

Лена21

Спасибо вам.
Это вроде то, что нужно. Намного удобнее, чем с присваивать макросы кнопкам.
И главный вопрос: как этот макрос перенести в свой документ?
Если простым копированием, то при запуске весь мой лист становится чистым.

Лена21

Кажется, получается!
Простым перенесением кусков своего документа в ваш!
Спасибо еще раз.

Шпец Докапыч

Пожалуйста.
Макрос находится в модуле листа. Он вызывается по событию: переход по любой ссылке. Реакцию на другие события можно назначить, выбрав интересующее из списка доступных процедур (см. скрин).
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли

GRKRND

Дабы не создавать новую тему оживлю эту, потому что задача похожая.
1. Есть исходные данные - перечень транзакций, у каждой есть признаки "период", "статья", "сумма". В примере они на листе "data"
2. Есть свод, который формируется по периодам и статьям, то есть суммирует все значения "сумма" для каждой пары "период"-"статья". В примере они на листе "total".

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

По сравнению с ранее предложенным решением разница в том, что фильтр должен быть применен не по содержимому текста гиперссылки, которое является динамическим, а по адресу ячейки, с которой совершается перевод. Для целей фильтрации на листе "data" добавлен столбец который определяет, в какую ячейку попадет каждая из транзакций.
Собственно интуиция мне подсказывает, что надо менять куски "ByVal Target As Hyperlink" и/или "Target.TextToDisplay", но на что их менять я не соображу.

Serge 007

Цитата: GRKRND от 01.08.2016, 23:45...Дабы не создавать новую тему...
Зачем Вы вредите форуму, крадя у него его единственное предназначение - новые темы?

Цитата: GRKRND от 01.08.2016, 23:45..потому что задача похожая...
"Похожая" не значит "такая же", а следовательно - вопрос задавать надо в новой теме, потому что это новый вопрос
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390