
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.198] |
![]() |
|
Сообщ.
#1
,
|
|
|
Добрый день!
Ситуация: есть файл, в нём около 100 листов. Каждому клиенту отведён отдельный лист, на котором для него рассчитываются пара сумм. Есть 2 сводных листа, на которых для каждого клиента указаны базовая сумма и результаты расчёта с соответствующего листа. Усовершенствовал: Добавил гиперссылки: по клику по имени клиента на сводном листе, осуществляется переход на соответствующий ему лист, там жмём ссылку "назад" - переходим обратно на ячейку клиента на сводном листе. Проблема: добавляем нового клиента в список на сводном листе (там алфавитный порядок) -> половина ссылок "назад" съезжает. Есть ли способ сделать так, чтобы гиперссылка "следила" за своей ячейкой как обычная формула? В идеале хотелось бы так: в книге скрыты все листы, кроме сводного. Жмём на гиперссылку, появляется лист, жмём назад - снова нет никаких листов, кроме сводного. Но гиперссылка на скрытый лист не работает, а событие FollowHyperlink срабатывает уже после попытки перехода по ссылке. Что делать? Можно конечно отказатся от гиперссылок и написать с нуля код, который будет активировать и скрывать/отображать листы и ячейки как мне удобно. Но всё-же пережде чем городить огород, хочется убедиться что из стандартных средств уже действительно больше выжать ничего не удастся. |
Сообщ.
#2
,
|
|
|
Цитата SV() @ Проблема: добавляем нового клиента в список на сводном листе (там алфавитный порядок) -> половина ссылок "назад" съезжает. Есть ли способ сделать так, чтобы гиперссылка "следила" за своей ячейкой как обычная формула? Может гиперссылку "назад" привязывать к имени? На сводном листе ячейкам, на которые ссылается "назад" присваивать имена, а ссылки "назад" на каждом листе клиента связывать с именами. Тогда сдвиги по барабану. Добавлено З.Ы.: дело было давно. впервые столкнувшись с книгой, в которой было более 100 листов, понял, что искать нужный лист можно долго. написал надстройку. надстройка выводит окошко со списком всех листов книги (в том числе, листов диаграмм и скрытых листов) и (самое полезное) текстбоксом. при вводе текста в текстбокс происходит поиск этого текста в листбоксе (список листов книги) формы. текст в текстбокс может помещаться и из ячейки листа. на форме есть ещё кнопка "переход", которая позволяет активировать нужный лист. для обсуждаемого случая. выделяю ячейку с клиентом на сводном листе (если имя клиента и листа совпадает, если нет, то придется делать столбец с имененм листа клиента), вызываю форму, в текстбокс формы читается содержимое ячейки (хорошо чтобы это было имя листа клиента), в листбоксе активируется нужный пункт, остается нажать кнопку переход. обратный путь на сводный лист можно продумать (например, написать в ячейку имя сводного листа, вызвать форму). ![]() |
Сообщ.
#3
,
|
|
|
я ж на примере тренировался... вот думаю, почему бы не вылАжить?
Прикреплённый файл ![]() |
Сообщ.
#4
,
|
|
|
Цитата Sokl @ сотня имён в книге, это конечно не очень хорошо, но похоже это как раз мой вариант привязывать к имени ![]() Цитата Sokl @ написал надстройку ![]() написать не проблема.... Просто я стараюсь использовать vba только для обработки данных, а для работы с ними пользоватся стандартными средствами. Ведь, по умолчанию безопасность у пользователей стоит высокая, пока всем объяснишь. А если вдруг у меня в коде ошибка.... |
Сообщ.
#5
,
|
|
|
Цитата SV() @ Ведь, по умолчанию безопасность у пользователей стоит высокая, пока всем объяснишь. Это можно обойти через подписание своего проекта, тем более если круг пользователей более-менее постоянный ![]() |
Сообщ.
#6
,
|
|
|
А может после изменения списка клиентов, однократно запускать макрос "Переиндексация"
который перебьет все гиперссылки на листы клиентов и все гиперсыллки "Назад" на всех листах? |
Сообщ.
#7
,
|
|
|
Цитата bi-lya @ Это можно обойти через подписание своего проекта, тем более если круг пользователей более-менее постоянный А можно подробней? Я когда-то давно пытался с этим разобраться. Не помню, какие там были проблемы, но получилось, что проще обойти всех и выставить низкий уровень (особо впечатлительным средний). Толь все равно надо всем сертификаты прописывать, толь сертификат микрософт выдаёт, что-то такое.... Цитата Avsha @ Можно, но вариант с именами имхо, надёжней: исключена ошибка, не надо ничего регулярно запукскать, сохраняется возможность всё сделать руками.А может после изменения списка клиентов, однократно запускать макрос "Переиндексация" Проблему замусоривания списка имён решил добавлением слова "ярлык_" к именам диапазонов с именем возврата. и они все в конце списка |
Сообщ.
#8
,
|
|
|
SV() посмотрите здесь:http://forum.vingrad.ru/s/69290ca1b4f488aa...w-exel-vba.html
|
Сообщ.
#9
,
|
|
|
SV(), Надёжные издатели
|