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

Вход

Регистрация

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

 

= Мир MS Excel/Запрет редактирование книги при неправильно введенно пароле - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Запрет редактирование книги при неправильно введенно пароле
Artem85 Дата: Четверг, 17.08.2017, 18:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день! у меня при открытии книги, проверяется дата, и если она больше той что указана в макросе, то для открытия запрашивается пароль, если пароль введен не верно, появляется сообщение что введен не правильный пароль. А как сделать так что бы при вводе неправильного пароля книга открывалась, но только для просмотра, без возможности редактирования?
[vba]
Код

Private Sub Workbook_Open()
If Date > "10/08/2017" Then
UserForm1.Show
End If
End Sub
[/vba]

[vba]
Код
Private Sub ок_Click()
If TextBox1.Text = "639" Then UserForm1.Hide _
Else MsgBox "Âû ââåëè íåâåðíûé ïàðîëü! Ïîïðîáóéòå åùå ðàç."

End Sub

Private Sub отмена_Click()
ThisWorkbook.Close False
End Sub
[/vba]


Сообщение отредактировал Artem85 - Четверг, 17.08.2017, 19:37
 
Ответить
СообщениеДобрый день! у меня при открытии книги, проверяется дата, и если она больше той что указана в макросе, то для открытия запрашивается пароль, если пароль введен не верно, появляется сообщение что введен не правильный пароль. А как сделать так что бы при вводе неправильного пароля книга открывалась, но только для просмотра, без возможности редактирования?
[vba]
Код

Private Sub Workbook_Open()
If Date > "10/08/2017" Then
UserForm1.Show
End If
End Sub
[/vba]

[vba]
Код
Private Sub ок_Click()
If TextBox1.Text = "639" Then UserForm1.Hide _
Else MsgBox "Âû ââåëè íåâåðíûé ïàðîëü! Ïîïðîáóéòå åùå ðàç."

End Sub

Private Sub отмена_Click()
ThisWorkbook.Close False
End Sub
[/vba]

Автор - Artem85
Дата добавления - 17.08.2017 в 18:55
progger Дата: Пятница, 18.08.2017, 09:26 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Кажись только защитой структуры книги и каждого листа:
[vba]
Код

    Dim oSheet As Worksheet
    ActiveWorkbook.Protect Structure:=True
    For Each oSheet In ActiveWorkbook.Sheets
        oSheet.Protect
    Next
[/vba]
 
Ответить
СообщениеКажись только защитой структуры книги и каждого листа:
[vba]
Код

    Dim oSheet As Worksheet
    ActiveWorkbook.Protect Structure:=True
    For Each oSheet In ActiveWorkbook.Sheets
        oSheet.Protect
    Next
[/vba]

Автор - progger
Дата добавления - 18.08.2017 в 09:26
progger Дата: Пятница, 18.08.2017, 09:34 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Защиту можно с паролем делать, а при последующем открытии файла убрать защиту (при необходимости и если он был сохранен с защищенными обьектами).
Ну и возникнут проблемы если есть ячейки для которых указано [vba]
Код
Locked = False
[/vba]
 
Ответить
СообщениеЗащиту можно с паролем делать, а при последующем открытии файла убрать защиту (при необходимости и если он был сохранен с защищенными обьектами).
Ну и возникнут проблемы если есть ячейки для которых указано [vba]
Код
Locked = False
[/vba]

Автор - progger
Дата добавления - 18.08.2017 в 09:34
Artem85 Дата: Пятница, 18.08.2017, 12:35 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Излишнее цитирование удалено администрацией - пункт 5j Правил форума

Защита паролем есть, она работает, но мне надо что бы те кто вводит неверный пароль, могли только просматривать книгу
 
Ответить
СообщениеИзлишнее цитирование удалено администрацией - пункт 5j Правил форума

Защита паролем есть, она работает, но мне надо что бы те кто вводит неверный пароль, могли только просматривать книгу

Автор - Artem85
Дата добавления - 18.08.2017 в 12:35
progger Дата: Пятница, 18.08.2017, 13:06 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Есть у меня предположение что мы о разных паролях говорим: я подразумевал пароли при защите книги/листов стандартными средствами Excel (в смысле дописать код VBA который я предлагал), а не то что у Вас провереятся через VBA.

Кроме того, мне в принципе не нравиться Ваш подход: в любой божий день можно отключить выполнение макросов и обойти такую защиту.
Логика должна быть обратной: файл всегда дотупен для просмотра, а для изменения нужны определеные действия и через VBA предоставление доступа к изменениям.
 
Ответить
СообщениеЕсть у меня предположение что мы о разных паролях говорим: я подразумевал пароли при защите книги/листов стандартными средствами Excel (в смысле дописать код VBA который я предлагал), а не то что у Вас провереятся через VBA.

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

Автор - progger
Дата добавления - 18.08.2017 в 13:06
progger Дата: Пятница, 18.08.2017, 13:25 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А вообще мне не ясно: Вы пытались сделать как я предлогал? Тело Вашей процедуры [vba]
Код
Private Sub отмена_Click()
[/vba] изменить на VBA-код из моего поста.
Это не полное решение, a путь...
 
Ответить
СообщениеА вообще мне не ясно: Вы пытались сделать как я предлогал? Тело Вашей процедуры [vba]
Код
Private Sub отмена_Click()
[/vba] изменить на VBA-код из моего поста.
Это не полное решение, a путь...

Автор - progger
Дата добавления - 18.08.2017 в 13:25
Manyasha Дата: Пятница, 18.08.2017, 17:46 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
Artem85, попробуйте так
[vba]
Код
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Application.DisplayAlerts = True
[/vba]

Книга будет открыта только для чтения.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеArtem85, попробуйте так
[vba]
Код
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Application.DisplayAlerts = True
[/vba]

Книга будет открыта только для чтения.

Автор - Manyasha
Дата добавления - 18.08.2017 в 17:46
  • Страница 1 из 1
  • 1
Поиск:

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