Страницы: 1
RSS
Скрытие группы столбцов флажком на заблокированном листе
 
Здравствуйте!
Как можно сделать, чтоб при включении флажка на листе "Настройки" автоматически Скрывались/Отображались группы столбцов на листе "Данные" (J:L, M:O и т.д. до CD:CF) при условии, что оба листа защищены?

Пытался найти на форуме, но такого варианта не нашел.
Пример прикрепил.
Спасибо.
 
Добрый день.

1. Защиту листа надо поставить макросом:
Код
Sub ActiveSheetProtect()
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowSorting:=True, AllowFiltering:=True, UserInterfaceOnly:=True
End Sub
2. На листе Настройки ячейки, которые принимают значение Истина/Ложь надо сделать незащищаемыми (в крайнем случае, этот столбец вообще можно скрыть)
3. В модуль листа Данные добавить код:
Код
Private Sub Worksheet_Activate()
    Dim j, r, c
    c = 10
    r = 12
    For j = 0 To 24
        Range(Cells(1, c), Cells(1, c + 2)).EntireColumn.Hidden = Not (Sheets("Íàñòðîéêè").Cells(r, "BW"))
        c = c + 3
        r = r + 1
    Next j
End Sub
 
Цитата
webley написал:
Защиту листа надо поставить макросом:
и похоже каждый раз при открытии книги - не знаю почему, когда открываешь файл условие UserInterfaceOnly:=True перестает работать и при активировании листа Данные возникает ошибка. Но если запустить ActiveSheetProtect - после этого работает корректно
 
webley, Спасибо!
Но в Вашем примере устанавливаю флажки, перехожу на лист данные и появляется ошибка. Может я что-то сломал?))
Изменено: Николай Венгеров - 04.04.2018 18:01:31
 
Цитата
Николай Венгеров написал:
Может я что-то сломал?))
нет - это как раз то, про что я писал выше. Добавил установку защиты при открытии книги
 
webley, Спасибо большое! Работает  :)
А подскажите еще пожалуйста. У меня в книге есть еще  "заставка при открытии файла". Как можно совместить эти два макроса?
У меня не получается.

Код
Private Sub Workbook_Open()
   UserForm1.Show
End Sub

Option Explicit

Private Sub Workbook_Open()
    Call SheetProtect(Sheets("Данные"))
End Sub
 
Додумался наконец-то!
Кто-нибудь может подсказать как на автоматическую блокировку листа добавить конкретный пароль, например 444?
Спасибо.
Код
Private Sub Workbook_Open()
   Call SheetProtect(Sheets("Данные"))
   UserForm1.Show
 End Sub
Изменено: Николай Венгеров - 06.04.2018 13:27:16
 
Николай Венгеров, не нужно превращать тему в склад разных вопросов. Ознакосьтесь, пожалуйста, с правилами форума.
Страницы: 1
Наверх