Страницы: 1
RSS
Защита Листов в соответствии с календарём
 
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, в решении следующей задачи.
Есть Книга содержащая 12 Листов. Названия Листов соответствуют месяцам года (Январь, Февраль и т. д.). В настоящий момент при открытии Книги с помощью Макроса ставиться защита на ВСЕ Листы.
Код
Private Sub Workbook_Open()
    Dim wsSh As Object
    For Each wsSh In Me.Sheets
        Protect_for_User_Non_for_VBA wsSh
    Next wsSh
End Sub

Sub Protect_for_User_Non_for_VBA(wsSh As Worksheet)
    wsSh.Protect Password:="123", UserInterfaceOnly:=True
End Sub

С помощью другого макроса снимаю защиту с нужного мне Листа и работаю с ним, каждый день процедура повторяется ...
Код
Sub Разблокировка()
ActiveSheet.Unprotect Password:="123"
MsgBox ("Защита снята!!!")
End Sub

Вопрос в следующем - возможно ли снятие защиты Листа "привязать" к календарю? Например, сейчас Февраль и при открытии Книги Лист "Февраль" будет без защиты. Послезавтра начинается Март и уже без защиты будет Лист "Март", а Лист "Февраль" становится защищённым.
Заранее благодарен за ответ.
Изменено: samass - 28.02.2024 11:29:16 (Забыл указать, какими пользуюсь Макросами)
 
в Private Sub Workbook_Open и пропишите. Дату считать не проблема.
 
После того, как установили защиту на все листы - определяете лист и снимаете с него защиту:
Код
Dim sShName$
Select Case Month(Date)
Case 1:
sShName = "Январь"
Case 2:
sShName = "Февраль"
Case 3:
sShName = "Март"
'и т.д.
'Case ...:
'sShName = "..."
End Select
ThisWorkbook.Sheets(sShName).Unprotect
Можно, конечно, и сократить и в отдельной функции определять название месяцев и много чего еще придумать. Но мне сейчас лениво - показал основной принцип определения листа с именем месяца в зависимости от текущей даты.
Можно так же и еще на стадии установки защиты на листы определять нужный и на него просто не ставить защиту или снимать сразу в том же цикле, проверяя имя листа.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Благодарю за советы, буду экспериментировать ...
Страницы: 1
Наверх