Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2009, 17:41   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Отключение пароля защиты листа кодом.

Здравствуйте. Подскажите.
У меня лист защищен паролем, можно ли при клике по кнопке на форме отключать пароль?
segail вне форума Ответить с цитированием
Старый 14.12.2009, 17:45   #2
voam
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 40
По умолчанию

Можно.
Используйте метод объекта Worksheet Unprotect. Переменной Password необходимо передавать пароль, которым закрыт лист.
voam вне форума Ответить с цитированием
Старый 14.12.2009, 18:42   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Что-то не отключает. Как бы переменная Password не определяется.
Код:
Private Sub CommandButton2_Click() 
    Worksheets("Лист1").Activate
    ActiveSheet.Unprotect (Password = "1111")
End Sub
segail вне форума Ответить с цитированием
Старый 14.12.2009, 18:51   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Как бы переменная Password не определяется.
Соблюдайте правила синтаксиса используемого языка программирования, и всё будет работать...

Вот 3 равнозначных варианта с верным синтаксисом:
Код:
Private Sub CommandButton_Click()
    Worksheets("Лист1").Unprotect Password:="1111"
End Sub

Private Sub CommandButton__Click()
    Worksheets("Лист1").Unprotect "1111"
End Sub

Private Sub CommandButton___Click()
    Password = "1111"
    Worksheets("Лист1").Unprotect Password
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 14.12.2009, 19:11   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Два первых варианта работают, третий тоже не определяет Password
Но в первом и втором варианте выходит диалоговое окно для ввода пароля, нажимая кнопку “ок” без пароля выдает ошибку, нажимая кнопку “отмена” защита снимается. Как блокировать диалоговое окно пароля?
Код:
Private Sub CommandButton_Click()
    	ActiveSheet.Unprotect 'Снять защиту листа
	Worksheets("Лист1").Unprotect Password:="1111"
End Sub
segail вне форума Ответить с цитированием
Старый 14.12.2009, 19:15   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Как блокировать диалоговое окно пароля?
Вы что, издеваетесь?

Сложно запустить предложенный код? (любой из трех вариантов)
Нафига добавлять в код что-то своё, а потом предъявлять претензии?

Уберите свою строку ActiveSheet.Unprotect 'Снять защиту листа
и не будет запроса пароля...
EducatedFool вне форума Ответить с цитированием
Старый 14.12.2009, 19:21   #7
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Не сознательно. Отталкивался от ручной последовательности снятие защиты, а затем ввод пароля, по этому и код так прописал.

Благодарю.
segail вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обход защиты Niklan Софт 0 11.11.2009 22:35
снятие пароля с книги/листа из другой книги? Bezdar Microsoft Office Excel 3 25.12.2008 11:59
защита листа и снятие защиты в зависимости от логина Dorvir Microsoft Office Excel 2 30.06.2008 13:24
Проблемма: Программное отключение "защиты формы" влияет на скорость выполнения программного кода... StrikeR33 Microsoft Office Word 0 28.05.2008 20:11
Просмотр листа с использование пароля asale Microsoft Office Excel 13 30.01.2007 23:41