powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа Hyperlink на VBA
8 сообщений из 8, страница 1 из 1
Работа Hyperlink на VBA
    #39006409
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер. Пытаюсь осваивать VBA, а именно гиперссылки а автофильтр. Есть задача: с 1-ого листа гиперссылки введу на остальные и при переходе срабатывает автофильтр. Но если я указываю это в Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) на том листе куда ведет гиперссылка, то код автофильтра не срабатывает.
При указании в листе где гиперссылка, работает при 1 ссылки, при добавлении 2-ой валится с ошибкой.
При указании для книги, не делал, но думаю ничего хорошего.
Вопрос как заставить работать автофильтр именно на том листе КУДА ссылается гиперссылка?
Есть какие-то идеи или предложения?
Вся справочная информация принимается и прочитывается на ура!
P.S. листов может быть много.
P.S.S. Возможно ли гиперссылка с последующим автофильтром между разными книгами или только с записью макросов в книгу PERSON?
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39006433
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NTВопрос как заставить работать автофильтр именно на том листе КУДА ссылается гиперссылка?
...
P.S. листов может быть много.Используйте событие Workbook_SheetActivate в модуле книги.
T1gRa_NTP.S.S. Возможно ли гиперссылка с последующим автофильтром между разными книгами или только с записью макросов в книгу PERSON?Используйте события WorkbookOpen, WorkbookActivate приложения. Это можно делать и в PERSONAL, и в любой другой книге.
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39006488
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, это событие при вызове листа книги. В фильтрах используются данные расположенные в определенных местах от гиперссылки и если сменить лист вручную, то данных для фильтра не будет. Так что необходимо смотреть именно переход по гиперссылке.
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39006569
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На свежую голову с утра решение найдено.
В событие Worksheet_FollowHyperlink - на листе ГДЕ находится гиперссылка пишется проверка на имя или какой-либо другой параметр листа на КОТОРЫЙ ссылается и для каждого листа необходимо четко определить правила, если совпадающие то указать в условии все листы где его можно применить.

If ActiveSheet.Name = "Лист2" Then
ActiveSheet.Range("$A$1:$D$6").AutoFilter Field:=1, Criteria1:=Target.Range.Offset(0, -3)
ActiveSheet.Range("$A$1:$D$6").AutoFilter Field:=2, Criteria1:=Target.Range.Offset(0, -2)
End If

дальше все работает. IF можно заменить на CASE.
Ушел тренироваться на реальных записях...
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39017143
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NT,

Проще написать функцию, в которую передавать атрибут - имя листа или экземпляр.
Код: vbnet
1.
Public fncFiltr(ws as worksheet, sValue as string) as boolean


При переходе по гиперссылки есначала определить имя листа ( и книги если нужно.) затем передать его в функцию которая для этого листа поставит автофильтр
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39017283
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставит это хорошо, но отфильтровать по 2-ум данным которые сдвинуты относительно гиперссылки при учете что гиперссылок много, и данные для каждой сдвинуты на разные интервалы функция сможет?
или придется так же определять с какого места идет гиперссылка.
Самый факт, это необходимо сделать 1 раз в файле шаблона, дальше просто Excel обновляется из БД при необходимости и в шаблоне четко буду знать наименование и структуры листов.
Но спасибо за идею, она более универсальна будет время, попробую разобраться.
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39018100
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NT,
Что-то вроде вызова ниже может подойти?
Код: vbnet
1.
2.
3.
4.
Set rt = range(activecells.address & ":" & cells(actevecells.row,activecells.column+3).address)
vArr = rt
sWsName = "лист2"
Call fncFiltr(sWsName, vArr(1,2), vArr(1,3)) 


Для данных, являющихся аргументами фильтра определить правила размещения необходимо.
...
Рейтинг: 0 / 0
Работа Hyperlink на VBA
    #39018103
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только не активцелл, а target
Да и остальной текст под сомнением :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Работа Hyperlink на VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]