Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 15:39   #1
Alex_ST
Пользователь
 
Аватар для Alex_ST
 
Регистрация: 04.12.2009
Сообщений: 28
По умолчанию Показать только лист, выбранный в оглавлении, остальные скрыть

Тут я взялся дополировывать макрос для создания в активной книге листа "<<ОГЛАВЛЕНИЕ>>" с гиперссылками на все её листы.
При выборе гиперссылки на лист из оглавления выбранный лист и "<<ОГЛАВЛЕНИЕ>>" остаются видимыми, а все другие листы скрываются.
При активизации листа "<<ОГЛАВЛЕНИЕ>>" все остальные листы книги скрываются.
На листе "<<ОГЛАВЛЕНИЕ>>" добавлен пункт-гиперссылка "Все листы", позволяющий при его активизации сделать видимыми все листы книги.

При необходимости название создаваемого листа "<<ОГЛАВЛЕНИЕ>>" и адрес ячейки начала оглавления на нём вводятся в первых строках кода процедуры СОЗДАТЬ_ОГЛАВЛЕНИЕ

Код может функционировать самостоятельно как надстройка - создавать листы "<<ОГЛАВЛЕНИЕ>>" в любой активной книге.

Вроде, всё работает как надо.
Только почему-то приходится два раза запускать макрос СОЗДАТЬ_ОГЛАВЛЕНИЕ для создания оглавления в новой книге:
- за первый запуск создаётся лист "<<ОГЛАВЛЕНИЕ>>" и код обработки событий
- за второй - прописываются гиперссылки.

НИЧЕГО НЕ ПОНИМАЮ! Пол-дня бьюсь...
Вложения
Тип файла: zip ОГЛАВЛЕНИЕ со скрыванием листов 2.zip (16.7 Кб, 14 просмотров)
Alex_ST вне форума Ответить с цитированием
Старый 07.06.2011, 16:55   #2
Alex_ST
Пользователь
 
Аватар для Alex_ST
 
Регистрация: 04.12.2009
Сообщений: 28
По умолчанию

Дмитрий (The_Prist) подсказал в чём дело - рановато использовал
Код:
With ActiveWorkbook.Worksheets(shContent)
, а когда листа не было в книге, то и ячейки не было куда писАть...
Переделал код. Не могу проверить - комп заглючил - постоянно Ёксель падает.
Перегружался - не помогло...
Может кто-нибудь проверить, создаётся ли лист <<ОГЛАВЛЕНИЕ>> и работают ли на нём гиперссылки?
Вложения
Тип файла: zip ОГЛАВЛЕНИЕ со скрыванием листов v2.2.xls.zip (18.6 Кб, 15 просмотров)

Последний раз редактировалось Alex_ST; 07.06.2011 в 16:59.
Alex_ST вне форума Ответить с цитированием
Старый 07.06.2011, 17:03   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Алексей, у меня тоже Экс2000 упал...
Эта строка не идёт:
Код:
   oSh.CodeModule.InsertLines oSh.CodeModule.CountOfDeclarationLines + 1, sCode
Это на первом заходе. Если гнать по F8, то просто вылетает в дебуг, но лист уже создан, и потом по второму заходу всё создаётся.
Только вот "все листы" не работает как нужно, открывает только первый лист.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 07.06.2011 в 17:10.
Hugo121 вне форума Ответить с цитированием
Старый 07.06.2011, 17:03   #4
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

<<ОГЛАВЛЕНИЕ>> создается, гиперссылки работают.
Рацпредложение : когда перешли на Лист1 (2, 3,...) текст кнопки изменить на "Перейти к оглавлению" (не "Создать...")
Е2010.
nilem вне форума Ответить с цитированием
Старый 07.06.2011, 20:32   #5
Alex_ST
Пользователь
 
Аватар для Alex_ST
 
Регистрация: 04.12.2009
Сообщений: 28
По умолчанию

nilem,
вы немного не поняли: кнопочки на листах - просто для упрощения вызова макроса при тестировании.
По моему замыслу сам макрос должен сидеть в personal.xls (или в надстройке), а для его вызова на одной из панели инструментов будет кнопочка (наверное, в меню Сервис).
Именно поэтому там везде ActiveBook а не ThisWorkbook.

Hugo121,
а в Безопасности доступ к элементам VBProgect разрешён?
Alex_ST вне форума Ответить с цитированием
Старый 07.06.2011, 21:22   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так в 2000 вроде такого не было? Сейчас уже проверить не могу, дома 2007.
Сейчас проверил дома - лист создаётся, ссылки не работают.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 07.06.2011, 21:28   #7
Alex_ST
Пользователь
 
Аватар для Alex_ST
 
Регистрация: 04.12.2009
Сообщений: 28
По умолчанию

а после того, как лист создался, попробуйте запустить макрос СОЗДАТЬ_ОГЛАВЛЕНИЕ ещё раз. Код обработки проопишется на лист оглавления и всё заработает.
Вот "дополированный" пример:
Вложения
Тип файла: zip Оглавление_автомат-2.zip (17.9 Кб, 30 просмотров)
Alex_ST вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Показать\скрыть два разных DIV kutt JavaScript, Ajax 5 06.03.2011 12:33
Как найти число больше 0 из строчки и вставить относительно этого столбца остальные данные в другой лист e_v_b Microsoft Office Excel 4 20.09.2010 06:31
Показать/скрыть edit`ы Rapala Общие вопросы Delphi 3 11.05.2010 09:20
как скрыть/показать TMainMenu blackstersl Общие вопросы Delphi 3 13.06.2009 18:12
Показать и скрыть фигуры Иванов_ДМ Microsoft Office Excel 5 28.04.2009 16:49