Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/123: Рейтинг темы: голосов - 123, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 01.09.2015
Сообщений: 50
1

Скрытие/отображение рабочих листов макросом

22.01.2016, 09:26. Показов 23890. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте! Подскажите, пожалуйста, есть ли возможность реализовать в VBA скрытие/отображение листов по признаку закрытый лист сделать открытым, и наоборот. Или код приведенный ниже сделать как-то компактнее что ли, дабы не писать команду для каждого отдельного листа с его названием. Заранее благодарю.

Visual Basic
1
2
3
4
5
6
ThisWorkbook.Sheets("Лист1").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист2").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист3").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист4").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист5").Visible = xlVeryHidden
ThisWorkbook.Sheets("Лист6").Visible = xlVeryHidden
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2016, 09:26
Ответы с готовыми решениями:

Формирование листов за счёт главной таблицы макросом
Есть основная таблица на 1 листе (group). Необходимо создать отдельный лист на каждую строку этой...

Обьединение нескольких листов данных в один макросом
Здравствуйте, подскажите пожалуйста. У меня есть 30 листов с данными Мне нужно объединить их в...

Скрытие листов с помощью макроса
Всем привет! Можно-ли через макрос экселя "скрывать" листы экселя? Например, в зависимости от...

Обработка макросом всех листов книги, а не только текущего
Во вложении файл с кодом. Код был написан под лист "1-тех" но его нужно еще использовать в листе...

8
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
22.01.2016, 09:50 2
Цитата Сообщение от rustim86 Посмотреть сообщение
закрытый лист сделать открытым, и наоборот
Можно, но надо позаботиться о том, чтобы в любой момент хотя бы один лист был видимым.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub rustim86()
Dim i&, c As New Collection
  For i = 1 To ThisWorkbook.Sheets.Count
    If ThisWorkbook.Sheets(i).Visible = xlSheetVisible Then
      c.Add i
    Else
      ThisWorkbook.Sheets(i).Visible = xlSheetVisible
    End If
  Next
  If c.Count = ThisWorkbook.Sheets.Count Then
    MsgBox "в книге нет скрытых листов - невозможно скрыть все листы"
    Exit Sub
  End If
  For i = 1 To c.Count
    ThisWorkbook.Sheets(c(i)).Visible = xlSheetVeryHidden
  Next
End Sub
1
Заблокирован
22.01.2016, 09:52 3
Visual Basic
1
2
3
for each sh in ThisWorkbook.Sheets
if sh.Visible=-1then sh.Visible=2else sh.Visible=-1
next
однако хотя бы один лист в книге должен быть отображен, имейте ввиду.
1
0 / 0 / 0
Регистрация: 01.09.2015
Сообщений: 50
22.01.2016, 09:58  [ТС] 4
Казанский, благодарю!

Добавлено через 1 минуту
Shersh, да-да, я знаю, опытным путем уже узнал это И вам спасибо!
0
0 / 0 / 0
Регистрация: 17.03.2023
Сообщений: 43
24.03.2023, 09:46 5
Здравствуйте, уважаемые форумчане!
Я не программист, просто пытаюсь облегчить себе работу в excel и ищу готовые коды. В другой теме уже спрашивал, но может не в той теме задаю вопрос, поэтому нет ответа или пока некогда ответить.

Спрошу в этой теме. Как при помощи снятии галочек в ечейке с помощью кода скрывать листы с таким же именем как и в строке таблицы, ну и соответственно при установке галочки лист снова отображается. Подскажите код для файла, который приложил
Вложения
Тип файла: 7z Образец2.7z (20.0 Кб, 6 просмотров)
0
ᴁ®
Эксперт MS Access
3648 / 2004 / 427
Регистрация: 13.12.2016
Сообщений: 6,894
Записей в блоге: 5
24.03.2023, 10:05 6
Цитата Сообщение от Алик73 Посмотреть сообщение
В другой теме уже спрашивал, но может не в той теме задаю вопрос, поэтому нет ответа или пока некогда ответить.
Может пора создать свою тему?

Добавлено через 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E4:E100")) Is Nothing Then
        Target.Font.Name = "Marlett"
        If Target = "a" Then
            Target = ""
            ThisWorkbook.Sheets(Target.Offset(0, -1).Value).Visible = xlVeryHidden
        Else
            Target = "a"
            ThisWorkbook.Sheets(Target.Offset(0, -1).Value).Visible = xlSheetVisible
        End If
        Target.Offset(0, 1).Activate
    End If
End Sub
Добавлено через 4 минуты
однако надо или
Visual Basic
1
On Error Resume Next
вставить, либо Range("E4:E8") ограничить...
1
0 / 0 / 0
Регистрация: 17.03.2023
Сообщений: 43
24.03.2023, 11:00 7
АЕ, спасибо!

Просто, когда создаешь свою тему, делают замечание зачем плодить темы, если они уже есть. Задаю вопрос в теме к которой он относится.

Помогите еще, пожалуйста, что надо добавить в этот код, чтобы по снятию/установке галочки скрывались/показывались строки, с 1 по 5 например, на необходимом листе. Заранее благодарю!
0
ᴁ®
Эксперт MS Access
3648 / 2004 / 427
Регистрация: 13.12.2016
Сообщений: 6,894
Записей в блоге: 5
24.03.2023, 11:30 8
Цитата Сообщение от Алик73 Посмотреть сообщение
Помогите еще, пожалуйста,
Поэтому и говорю. Создайте тему. Я же вижу, что ваша хотелка бесконечна и однообразна до безобразия.
0
0 / 0 / 0
Регистрация: 17.03.2023
Сообщений: 43
24.03.2023, 11:51 9
АЕ, пока вопрос не снят, поэтому и однообразен.
Хорошо, спасибо.
0
24.03.2023, 11:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2023, 11:51
Помогаю со студенческими работами здесь

Разделение списка расчетных листов на листы или файлы PDF макросом
Доброго дня, форумчане! Есть такой вопрос - есть файл Excel, выгруженный из 1С, со списком...

Сбор рабочих листов из внешних файлов с последующим выполнением другого макроса
Использую прекрасный макрос с форума,-спасибо. Макрос умеет открывать много файлов "в один" - одну...

Объекты Excel VBA: рабочие листы. Примеры структур рабочих листов в приложении, их связь и изменчивость
Ребята,помогите найти информацию...ума не приложу,что нужно искать... 7. Объекты Excel VBA:...

Скрытие и отображение столбцов
Возникла такая задачка: Есть 3 вида стоблбцов, которые чередуются (1-й вид, 2-вид, 3-й вид, 1-й...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru