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

Вход

Регистрация

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

 

= Мир MS Excel/Защита Листа и книги - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита Листа и книги
Защита Листа и книги
heaven33rus Дата: Четверг, 20.07.2017, 13:06 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Подскажите макрос на защиту листа и книги.
У меня в файле много вкладок, которые я собираюсь скрыть, оставив только один рабочий лист1, на котором также будут расставлены правила блокировки ячеек.
Нужно чтобы при открытии файла, автоматически включалась защита листа1 и книги целиком, чтобы остальные листы нельзя было отобразить.
Было бы круто закрыть доступ к диспетчеру имен еще (только так, чтоб он продолжал работать и была возможность получить доступ к нему разблокировав книгу)

P.S.
У меня там для достоверности эксперимента вставлен макрос препятствующий сохранению книги. Мне это нужно в рабочем проекте.
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
[/vba]
К сообщению приложен файл: 3380133.xlsm(9Kb)


Сообщение отредактировал heaven33rus - Четверг, 20.07.2017, 13:15
 
Ответить
СообщениеПодскажите макрос на защиту листа и книги.
У меня в файле много вкладок, которые я собираюсь скрыть, оставив только один рабочий лист1, на котором также будут расставлены правила блокировки ячеек.
Нужно чтобы при открытии файла, автоматически включалась защита листа1 и книги целиком, чтобы остальные листы нельзя было отобразить.
Было бы круто закрыть доступ к диспетчеру имен еще (только так, чтоб он продолжал работать и была возможность получить доступ к нему разблокировав книгу)

P.S.
У меня там для достоверности эксперимента вставлен макрос препятствующий сохранению книги. Мне это нужно в рабочем проекте.
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
[/vba]

Автор - heaven33rus
Дата добавления - 20.07.2017 в 13:06
_Boroda_ Дата: Четверг, 20.07.2017, 13:27 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11512
Репутация: 4736 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Про достоверность Вы уже после добавили, поэтому сами там с ней разбирайтесь уже.
В модуль КНИГИ
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
End Sub

Private Sub Workbook_Open()
    SkrImen
    SkrListy
End Sub

Sub SkrListy()
    shVidim.Visible = -1
    shVidim.Protect Password:="ssaP", UserInterfaceOnly:=True
    For Each sh_ In Me.Worksheets
    jjj = sh_.CodeName
        If sh_.CodeName <> "shVidim" Then
            sh_.Visible = 2
        End If
    Next sh_
End Sub

Sub SkrImen()
    For Each n_ In Me.Names
        n_.Visible = False
    Next n_
End Sub
[/vba]
Файл перевложил
К сообщению приложен файл: 3380133_1.xlsm(18Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Про достоверность Вы уже после добавили, поэтому сами там с ней разбирайтесь уже.
В модуль КНИГИ
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
End Sub

Private Sub Workbook_Open()
    SkrImen
    SkrListy
End Sub

Sub SkrListy()
    shVidim.Visible = -1
    shVidim.Protect Password:="ssaP", UserInterfaceOnly:=True
    For Each sh_ In Me.Worksheets
    jjj = sh_.CodeName
        If sh_.CodeName <> "shVidim" Then
            sh_.Visible = 2
        End If
    Next sh_
End Sub

Sub SkrImen()
    For Each n_ In Me.Names
        n_.Visible = False
    Next n_
End Sub
[/vba]
Файл перевложил

Автор - _Boroda_
Дата добавления - 20.07.2017 в 13:27
_Boroda_ Дата: Четверг, 20.07.2017, 13:42 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11512
Репутация: 4736 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Добавил пароль листа
Файл перевложил


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДобавил пароль листа
Файл перевложил

Автор - _Boroda_
Дата добавления - 20.07.2017 в 13:42
heaven33rus Дата: Четверг, 20.07.2017, 13:48 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_,
Вроде то, что надо.
а книгу защитить чтоб тоже можно добавить?
 
Ответить
Сообщение_Boroda_,
Вроде то, что надо.
а книгу защитить чтоб тоже можно добавить?

Автор - heaven33rus
Дата добавления - 20.07.2017 в 13:48
_Boroda_ Дата: Четверг, 20.07.2017, 13:53 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11512
Репутация: 4736 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А зачем? Вы пробовали показать листы вручную? Попробуйте, там их еще два
Если очень хочется - вот такую строку допишите
[vba]
Код
Me.Protect Structure:=True, Windows:=False, Password:="q"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА зачем? Вы пробовали показать листы вручную? Попробуйте, там их еще два
Если очень хочется - вот такую строку допишите
[vba]
Код
Me.Protect Structure:=True, Windows:=False, Password:="q"
[/vba]

Автор - _Boroda_
Дата добавления - 20.07.2017 в 13:53
heaven33rus Дата: Четверг, 20.07.2017, 14:55 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_,
Как в аптеке!!!! Все четко, вставил себе в проект, не нарадуюсь :-)))
Спасибо большое!!!
 
Ответить
Сообщение_Boroda_,
Как в аптеке!!!! Все четко, вставил себе в проект, не нарадуюсь :-)))
Спасибо большое!!!

Автор - heaven33rus
Дата добавления - 20.07.2017 в 14:55
heaven33rus Дата: Четверг, 20.07.2017, 15:04 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_,
только проблем один у меня все же есть.
[vba]
Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
End Sub
[/vba]

Помогите скрестить эти макросы вместе.
 
Ответить
Сообщение_Boroda_,
только проблем один у меня все же есть.
[vba]
Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
End Sub
[/vba]

Помогите скрестить эти макросы вместе.

Автор - heaven33rus
Дата добавления - 20.07.2017 в 15:04
_Boroda_ Дата: Четверг, 20.07.2017, 15:23 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11512
Репутация: 4736 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Помогите скрестить эти макросы
Ага, нашли Мичурина
[offtop]Как умер Мичурин? Полез на яблоню за укропом, а его арбузами завалило[/offtop]

Если б я понял, зачем Вы это делаете, то я бы с самого начала их скрестил.
Если запрещено сохранять и закрываем без сохранения, то свои оставьте, а мои сотрите
Или можно при попытке сохранить-закрыть все равно всё блокировать, а потом не сохранять и не закрывать. Вот такое западло
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
Cancel = True
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Помогите скрестить эти макросы
Ага, нашли Мичурина
[offtop]Как умер Мичурин? Полез на яблоню за укропом, а его арбузами завалило[/offtop]

Если б я понял, зачем Вы это делаете, то я бы с самого начала их скрестил.
Если запрещено сохранять и закрываем без сохранения, то свои оставьте, а мои сотрите
Или можно при попытке сохранить-закрыть все равно всё блокировать, а потом не сохранять и не закрывать. Вот такое западло
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
Cancel = True
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 20.07.2017 в 15:23
heaven33rus Дата: Четверг, 20.07.2017, 15:45 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_, У меня в моем файле есть кнопка "выполнить расчет" которая закрывает файл без сохранения и открывает по новой. Таким образом можно выполнять новый расчет не выполняя нудную процедуру возврата всего в начальную позицию вручную.

А если кто-то жмякнет во время работы на кнопку сохранить или закроет с сохранением, то при последующей загрузке файла, нажав на кнопку выполнить новый расчет, восстановится тот файл, который сохранил пользователь.
Вот такой мотив :-)

Единственное что, пр таком раскладе и правда нет необходимости ничего прятать при закрытии.
 
Ответить
Сообщение_Boroda_, У меня в моем файле есть кнопка "выполнить расчет" которая закрывает файл без сохранения и открывает по новой. Таким образом можно выполнять новый расчет не выполняя нудную процедуру возврата всего в начальную позицию вручную.

А если кто-то жмякнет во время работы на кнопку сохранить или закроет с сохранением, то при последующей загрузке файла, нажав на кнопку выполнить новый расчет, восстановится тот файл, который сохранил пользователь.
Вот такой мотив :-)

Единственное что, пр таком раскладе и правда нет необходимости ничего прятать при закрытии.

Автор - heaven33rus
Дата добавления - 20.07.2017 в 15:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Защита Листа и книги
Страница 1 из 11
Поиск:

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