Скрыть лист в excel по условию

Как скрыть или отобразить конкретный лист на основе значения ячейки на другом листе?

Есть ли у нас какие-либо способы скрыть или отобразить конкретную вкладку рабочего листа на основе содержимого ячейки на другом листе? Например, когда я ввожу текст «Да» в ячейку G1 листа Sheet2, я хочу, чтобы Sheet1 был скрыт, а когда я ввожу «Нет», Sheet1 должен отображаться сразу. Как я мог решить эту проблему в Excel?

Скрыть или отобразить конкретную вкладку рабочего листа на основе значения ячейки с кодом VBA


стрелка синий правый пузырь Скрыть или отобразить конкретную вкладку рабочего листа на основе значения ячейки с кодом VBA

Чтобы скрыть или отобразить конкретную вкладку рабочего листа на основе значения ячейки на другом листе, следующий код VBA может оказать вам услугу, пожалуйста, сделайте следующее:

1. Перейдите на рабочий лист, содержащий значение ячейки, на основе которого вы хотите скрыть другой лист.

2. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код, в выскочившем Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустое окно модуля, см. снимок экрана:

Код VBA: скрыть или скрыть вкладку рабочего листа на основе значения ячейки:

Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If
End Sub

doc скрыть вкладку на основе значения ячейки 1

Примечание: В приведенном выше коде G1 и Да — это ячейка и содержимое ячейки, на котором вы хотите основываться, и Sheet1 — это конкретный лист, который вы хотите скрыть или показать. Вы можете изменить их по своему усмотрению.

3. Затем сохраните и закройте этот код, когда вы вводите «Нет» или другой текст в ячейку G1, Sheet1 скрывается, но если вы вводите «Да» в ячейку, Sheet1 отображается сразу, см. Снимки экрана:


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (24)


Оценок пока нет. Оцените первым!

 

Есть 2 столбца. В первом может быть либо «скрыть» либо «отобразить». А во втором имена листов книги. Надо чтоб програмка прошлась по первому столбцу и там где «скрыть» — скрыла лист по имени которое находится в соответствующей ячейке второго столбца, а там где отобразить, соответственно отобразила лист.

 

heso

Пользователь

Сообщений: 444
Регистрация: 14.08.2015

пример с начальными данными за вас выдумывать?

 
 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

Вот простецкая самоделка. Не писатель макросов.

 

Спасибо, но подходит если в имена листов 1,2,…n. Но имена листов могут быть разные например: Таня,Маня, … Ваня. Диапазон с листами будет фиксированный. Главное чтоб имя листа брала с ячейки которая находиться рядышком с условием.

 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

#6

23.01.2017 22:01:21

Цитата
Alex_boy2007 написал: могут быть разные

а Вы пробовали?  у меня работает с разными именами

 

Alex_boy2007

Пользователь

Сообщений: 5
Регистрация: 18.07.2015

#7

23.01.2017 22:05:15

Цитата
Vik_tor написал:
у меня работает с разными именами

Если переименовать 2 лист и цифру 2 то да, но если написать вместо 2 Таня, а этот лист будет 5, то работать не будет.

 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

#8

23.01.2017 22:09:06

Цитата
Alex_boy2007 написал:
А во втором имена листов книги.

Вы писали по именам, а не по порядку

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#9

23.01.2017 22:10:03

Код
Sub qq()
Dim cl As Range
    For Each cl In Range(Cells(2, "A"), Cells(Rows.Count, "A").End(xlUp))
        Sheets(CStr(cl.Value)).Visible = cl.Offset(, 1).Value <> "Скрыть"
    Next
End Sub
 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

Спасибо мастеру. И мне пригодится

 

Alex_boy2007

Пользователь

Сообщений: 5
Регистрация: 18.07.2015

#11

23.01.2017 23:05:32

Спасибо! Все работает!!!

Скрытие листов книги по условию

ASM_0408

Дата: Четверг, 17.08.2017, 11:26 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Приветствую участников форума! Возможно что моя идея покажется бредовой, готов выслушать все замечания и предложения. В файле примера на вкладке общая информация расположены три флажка. Возможно ли реализовать такое условие что при установлении флажка «Изделие 1» скрывались листы «Изделие 2», «Изделие 3». И соответственно если флажок ставится на «Изделие 2», то скрывались листы «Изделие 1», «Изделие 3». Насколько понимаю возможно применение флажков для такого условия не приемлемо, но так как не владею достаточными знаниями и навыками, смог описать задачу только так. Возможны и другие механизмы решения все листы с изделиями могут быть скрыты но при установке флажка этот лист появляется. Благодарю!

К сообщению приложен файл:

_1.xlsx
(14.2 Kb)

 

Ответить

ezhov_da

Дата: Четверг, 17.08.2017, 11:43 |
Сообщение № 2

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

1

±

Замечаний:
0% ±


Excel 2007

Сделал пример для первого изделия, остальные по аналогии.
Файл во вложении.

К сообщению приложен файл:

_1.xlsm
(23.6 Kb)

 

Ответить

ASM_0408

Дата: Четверг, 17.08.2017, 14:00 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Сделал пример для первого изделия

Отлично, по функционалу то что надо. Но в силу того что я не силен в vba, если не затруднит опишите пожалуйста алгоритм по которому работает макрос и нужно ли мне создавать новый макрос на каждый лист или надо дополнять существующий макрос. Благодарю!

 

Ответить

ezhov_da

Дата: Четверг, 17.08.2017, 14:19 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

1

±

Замечаний:
0% ±


Excel 2007

опишите пожалуйста алгоритм по которому работает макрос и нужно ли мне создавать новый макрос на каждый лист или надо дополнять существующий макрос. Благодарю!

Добавляете элемент — чекбокс на лист.
Для каждого чекбокса прописываете обработчик скрытия/отображения на примере из моего файла.
Так же, что немаловажно, при открытии книги желательно восстанавливать значения чекбоксов, то есть если пользователь снял галку и сохранил документ, что лист скрыт, при открытии нужно сверять скрытые листы и восстанавливать значения чекбоксов.

Надеюсь понятно написал :)

 

Ответить

ASM_0408

Дата: Четверг, 17.08.2017, 16:05 |
Сообщение № 5

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 237


Репутация:

0

±

Замечаний:
0% ±


Excel 2021


Да понятно с чекбоксами все получилось. А вот макрос на сохранение не могу поправить что то не верно вношу.

 

Ответить

ezhov_da

Дата: Четверг, 17.08.2017, 16:35 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

1

±

Замечаний:
0% ±


Excel 2007

Да понятно с чекбоксами все получилось. А вот макрос на сохранение не могу поправить что то не верно вношу.

Вам достаточно поставить слушателя на открытие книги
[vba]

Код

Private Sub Workbook_Open()

End Sub

[/vba] и в нем реализовать проверку скрытости листов и установку/снятие галочек

 

Ответить

Skip to content

Как скрыть все, кроме активного рабочего листа

На чтение 2 мин. Просмотров 2.1k.

Что делает макрос: Бывают ситуации, когда Вы не можете удалить все, кроме активного листа, как мы это делали в предыдущем макросе. Есть более мягкий вариант — просто скрыть листы. Excel не позволяет скрыть все листы в книге — по крайней мере, один должен быть виден. Тем не менее, вы можете скрыть все, кроме активного листа.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает этот код
  4. Как использовать

Как макрос работает

Этот макрос с помощью цикла пробегает по всем рабочим листам и проверяет на соответствие имени каждого рабочего листа и имя активного листа. Каждый раз, когда имя не совпадает, он скрывает лист.

Код макроса

Sub SkritVseKromeAktivnogoLista()
'Шаг 1: Объявляем переменную
Dim ws As Worksheet
'Шаг 2: Запускаем цикл по всем рабочим листам
For Each ws In ThisWorkbook.Worksheets
'Шаг 3: Сравниваем имя каждого листа с активным
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
'Шаг 4: Скрываем лист, если не совпадают
ws.Visible = xlSheetHidden
End If
'Шаг 5: Переходим на следующий рабочий лист
Next ws
End Sub

Как работает этот код

  1. Объявляем переменную WS, которая будет хранить имя каждого листа.
  2. На шаге 2 макрос начинает цикл по всем рабочим листам в этой книге.
  3. На этом этапе сравниваем активное имя листа с листом, который определяется с помощью цикла.
  4. Если имена листов различны, макрокоманда скрывает лист.
  5. На шаге 5, переходим к следующему листу книги и повторяем проверку снова. После того, как пробежались по всем листам, макрос завершается.

Вы заметили, что мы использовали xlSheetHidden в нашем макросе. Это свойство, которое получается, когда мы щелкает правой кнопкой мыши на листе и выбираем: Скрыть. В этом случае пользователь может щелкнуть правой кнопкой мыши на любой вкладке и выбрать: Отобразить. Он увидит все листы, которые скрыты. Но есть один вариант скрытия, который является более секретным. Если вы будете использовать xlSheetVeryHidden, чтобы скрыть свои листы, пользователи не смогут увидеть их, даже если они щелкнут правой кнопкой мыши на любой вкладке и выберут:Отобразить. Единственный способ, чтобы отобразить лист, скрытый таким способом, с помощью VBA.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.

Версия от 24.10.2021

Операционная система: Windows

Microsoft Excel 2007/2010/2013/2016/2019/365

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

Пошаговая инструкция по установке для различных версий Excel

Видео по работе с надстройкой smotret-video

Для работы с надстройкой необходимо:

1. Скачать файл, который станет доступен для скачивания сразу после оплаты (порядок оплаты);

2. Установить надстройку, следуя пошаговой инструкции по установке для различных версий Excel;

3. Нажать кнопку вызова диалогового окна на панели инструментов или на вкладке «Надстройки» (в зависимости от версии Excel);

nadstrojka-makros-otobrazheniya-vseh-skrytyh-listov

4. В диалоговом окне надстройки задать исходные данные для работы программы и нажать кнопку «ОК». 

vyborochnoe skrytie i otobrazhenie listov

*В случае, если в надстройку будут внесены какие-либо изменения или дополнения, то обновленную версию надстройки Вы получите бесплатно.

Понравилась статья? Поделить с друзьями:
  • Скрыть линии в excel
  • Скрыть колонтитулы в word на первой странице
  • Скрыть колонки в excel с плюсом
  • Скрыть кнопки листов excel
  • Скрыть или показать строки в excel