Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Надстройка "Управление видимостью листов" - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Надстройка "Управление видимостью листов"
Alex_ST Дата: Среда, 15.02.2012, 10:08 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Предлагаемая надстройка добавляет в меню листа (появляется по ПКМ на его ярлыке) после стандартных пунктов "Удалить" и "Переименовать" дополнительные пункты: "Скрыть", "Спрятать", "Управление видимостью листов"

При выборе пункта "Скрыть" производится стандартное скрытие листа методом ActiveSheet.Visible = xlSheetHidden (xlSheetHidden == 0 == True). Это точно то же самое, что делается через меню Формат->Лист->Скрыть
При выборе пункта "Спрятать" производится "сильное скрытие" листа методом ActiveSheet.Visible = xlSheetVeryHidden (xlSheetVeryHidden == 2). Этого сделать через меню Excel нельзя никак. Можно только, войдя в проект в VBE установить это свойство руками (ну или, естественно, программно, что и делают процедуры надстройки).
При выборе пункта "Управление видимостью листов" выводится окно формы, содержащее список ВСЕХ листов книги с пометками возле каждого о текущей видимости листа: V H vH (Visible-Hidden-VeryHidden)
Свойствами видимости любого из листов можно управлять.
На приведённом скриншоте видно, что книга содержит 3 листа: Лист1, Лист2, Лист3

При этом пользователь видит ярлык только листа Лист1.
Ярлыки листов Лист2 и Лист3 не отображаются. Но Лист2 можно отобразить, воспользовавшись Формат->Лист->Отобразить. А вот Лист3 невидим пользователю вообще (Сильно скрыт). Модуль этого листа можно увидеть только в VBE и только там можно управлять его свойствами.

Надстройкой очень удобно пользоваться для скрытия с посторонних (начальственных, например) глаз и от шаловливых рук "шибко дюже грамотных" пользователей листов со вспомогательными данными (например, расценками или именованными диапазонами, используемыми для формирования на видимых пользователю листах выпадающих списков проверки данных).
К стати, если в книге "заныкать" лист и включить защиту паролем проекта VBA, то отобразить заныканные листы кроме как пользователю надстройки или хорошему знатоку VBA будет невозможно, т.к. в проект будет невозможно войти чтобы увидеть, что есть такой никому не видимый лист и руками установить ему свойство Visible (то же самое достигается и включением защищённого от снятия паролем режима общего доступа к файлу).

Автор надстройки не я, а webley, за что ему большой респект и уважуха smile
Я только участвовал на Планете в разработке и "полировал" его решение, выложенное в топике скрыть/отобразить несколько листов
К сообщению приложен файл: 9537471.gif (10.5 Kb) · 4091656.gif (8.5 Kb) · HideShowSheets.xla (62.0 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 15.02.2012, 10:12
 
Ответить
СообщениеПредлагаемая надстройка добавляет в меню листа (появляется по ПКМ на его ярлыке) после стандартных пунктов "Удалить" и "Переименовать" дополнительные пункты: "Скрыть", "Спрятать", "Управление видимостью листов"

При выборе пункта "Скрыть" производится стандартное скрытие листа методом ActiveSheet.Visible = xlSheetHidden (xlSheetHidden == 0 == True). Это точно то же самое, что делается через меню Формат->Лист->Скрыть
При выборе пункта "Спрятать" производится "сильное скрытие" листа методом ActiveSheet.Visible = xlSheetVeryHidden (xlSheetVeryHidden == 2). Этого сделать через меню Excel нельзя никак. Можно только, войдя в проект в VBE установить это свойство руками (ну или, естественно, программно, что и делают процедуры надстройки).
При выборе пункта "Управление видимостью листов" выводится окно формы, содержащее список ВСЕХ листов книги с пометками возле каждого о текущей видимости листа: V H vH (Visible-Hidden-VeryHidden)
Свойствами видимости любого из листов можно управлять.
На приведённом скриншоте видно, что книга содержит 3 листа: Лист1, Лист2, Лист3

При этом пользователь видит ярлык только листа Лист1.
Ярлыки листов Лист2 и Лист3 не отображаются. Но Лист2 можно отобразить, воспользовавшись Формат->Лист->Отобразить. А вот Лист3 невидим пользователю вообще (Сильно скрыт). Модуль этого листа можно увидеть только в VBE и только там можно управлять его свойствами.

Надстройкой очень удобно пользоваться для скрытия с посторонних (начальственных, например) глаз и от шаловливых рук "шибко дюже грамотных" пользователей листов со вспомогательными данными (например, расценками или именованными диапазонами, используемыми для формирования на видимых пользователю листах выпадающих списков проверки данных).
К стати, если в книге "заныкать" лист и включить защиту паролем проекта VBA, то отобразить заныканные листы кроме как пользователю надстройки или хорошему знатоку VBA будет невозможно, т.к. в проект будет невозможно войти чтобы увидеть, что есть такой никому не видимый лист и руками установить ему свойство Visible (то же самое достигается и включением защищённого от снятия паролем режима общего доступа к файлу).

Автор надстройки не я, а webley, за что ему большой респект и уважуха smile
Я только участвовал на Планете в разработке и "полировал" его решение, выложенное в топике скрыть/отобразить несколько листов

Автор - Alex_ST
Дата добавления - 15.02.2012 в 10:08
Serge_007 Дата: Среда, 15.02.2012, 12:36 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Alex_ST)
Оказывается, что больше двух файлов к посту приаттачить нельзя

Алекс, если написать мне в личку, то можно smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Alex_ST)
Оказывается, что больше двух файлов к посту приаттачить нельзя

Алекс, если написать мне в личку, то можно smile

Автор - Serge_007
Дата добавления - 15.02.2012 в 12:36
w00t Дата: Суббота, 23.01.2021, 21:02 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 3 ±
Замечаний: 0% ±

Использую периодически, спасибо что сделали. Сколько времени прошло с тех пор)
Показалось, что немного более удобно сразу реагировать на изменение в radio button ("на вкус и цвет")). Вдруг кому-то будет такой вариант интересен. Сильно не пинайте, редко с vba.
К сообщению приложен файл: Sheet_visibilit.xlsm (40.4 Kb)


Сообщение отредактировал w00t - Суббота, 23.01.2021, 21:03
 
Ответить
СообщениеИспользую периодически, спасибо что сделали. Сколько времени прошло с тех пор)
Показалось, что немного более удобно сразу реагировать на изменение в radio button ("на вкус и цвет")). Вдруг кому-то будет такой вариант интересен. Сильно не пинайте, редко с vba.

Автор - w00t
Дата добавления - 23.01.2021 в 21:02
Alex_ST Дата: Суббота, 23.01.2021, 22:12 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Ну, это, конечно Ваше дело, но ИМХО, как надстройку использовать удобнее, т.к. кнопку вызова макроса можно "случайно" спрятать вместе с листом, на котором она находится, а ярлычки листов (хотя бы одного) видны всегда



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Суббота, 23.01.2021, 22:12
 
Ответить
СообщениеНу, это, конечно Ваше дело, но ИМХО, как надстройку использовать удобнее, т.к. кнопку вызова макроса можно "случайно" спрятать вместе с листом, на котором она находится, а ярлычки листов (хотя бы одного) видны всегда

Автор - Alex_ST
Дата добавления - 23.01.2021 в 22:12
Alex_ST Дата: Вторник, 11.04.2023, 09:21 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Тут мне один из друзей, юзающих надстройку "Управление видимостью листов", пожаловался, что у него в меню листа исчез дефаултный пункт "Скрыть".
Такое может быть, т.к. надстройка после её закрытия убирается за собой - удаляет добавленные в меню пункты.
Немного переделал надстройку.
Изменения: вместо "Скрыть" теперь "Скрыть лист"; вместо "Спрятать" - "Спрятать лист". Добавил комментарии в модуль формы. Немного уменьшил межстрочный интервал на форме.
К сообщению приложен файл: upravlenie_vidimostju_listov.xla (60.0 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 11.04.2023, 09:22
 
Ответить
СообщениеТут мне один из друзей, юзающих надстройку "Управление видимостью листов", пожаловался, что у него в меню листа исчез дефаултный пункт "Скрыть".
Такое может быть, т.к. надстройка после её закрытия убирается за собой - удаляет добавленные в меню пункты.
Немного переделал надстройку.
Изменения: вместо "Скрыть" теперь "Скрыть лист"; вместо "Спрятать" - "Спрятать лист". Добавил комментарии в модуль формы. Немного уменьшил межстрочный интервал на форме.

Автор - Alex_ST
Дата добавления - 11.04.2023 в 09:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!