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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2013, 14:26   #1
lion78
 
Регистрация: 27.12.2012
Сообщений: 6
По умолчанию Изменить пароль, заданный средствами VBA

Добрый день!

Я в программировании не силён, всё, что мне нужно, делаю с помощью google Однажды мне нужно было создать файл с макросами и при этом защитить лист паролем, но при этом чтобы макросы работали. Я это сделал так:
Код:
'для выполнения макросов на защищенном листе
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 Object)
 wsSh.Protect Password:="123456", AllowFiltering:=True, UserInterfaceOnly:=True
End Sub
Это оказалось удобно, т.к. перед закрытием книги надо было лишь сохранить её, защита ставилась автоматически. Но мне понадобилось изменить пароль. Заменив его в строке wsSh.Protect Password:="123456", я стал получать при открытии файла сообщение:

"Run-time error '1004': неверный пароль. Убедитесь, что отключена клавиша Caps Lock и используется правильный регистр".

Я испытал этот же метод на новом пустом файле. Эффект при попытке сменить пароль ровно тот же.
Обычно, чтобы решить какую-то стоящую передо мной задачу, я лопачу форумы, нахожу что-то подобное и переделываю под свои нужды, но тут нет уже времени, а с наскоку подобную проблему не обнаружил.
Прошу, уважаемые форумчане, подскажите, как изменить этот пароль так, чтобы ошибка не вываливалась.
Заранее благодарен.

Последний раз редактировалось lion78; 30.03.2013 в 14:30.
lion78 вне форума Ответить с цитированием
Старый 30.03.2013, 14:30   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Для начала надо снять защиту, а потом уж ставить новый пароль.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 30.03.2013, 14:45   #3
lion78
 
Регистрация: 27.12.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Для начала надо снять защиту, а потом уж ставить новый пароль.
чего я только не делал. снимаю защиту, удаляю строки кода, сохраняю, закрываю. открываю - всё ок, файл не защищен. Вставляю код с новым паролем, сохраняю, закрываю. Открываю - снова ошибка.

Да, забыл сказать, excel 2007
lion78 вне форума Ответить с цитированием
Старый 30.03.2013, 14:47   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Выкладывайте файл-пример.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 30.03.2013, 14:59   #5
lion78
 
Регистрация: 27.12.2012
Сообщений: 6
По умолчанию

Файл. Собственно, содержит только код в модуле "Эта книга". Сейчас там пароль изначальный, всё открывается как надо. Попытки сменить пароль вызывают ошибку.
Вложения
Тип файла: zip Книга1.zip (11.5 Кб, 12 просмотров)

Последний раз редактировалось lion78; 30.03.2013 в 15:03. Причина: файл не вставился :(
lion78 вне форума Ответить с цитированием
Старый 30.03.2013, 15:01   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Цитата:
Сообщение от lion78 Посмотреть сообщение
Файл. Собственно,...
Гы) Где, собственно?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 30.03.2013, 15:14   #7
eikhner
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 68
По умолчанию

прежде чем сменить пароль в макросе вы должны задать этот пароль при защите листа или книги .

1 защищаете фаил новым паролем
2 добавляете этот (новый) пароль в макрос

Последний раз редактировалось eikhner; 30.03.2013 в 15:16.
eikhner вне форума Ответить с цитированием
Старый 30.03.2013, 15:15   #8
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Какой старый пароль?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 30.03.2013, 15:23   #9
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ну вот я с помощью макроса снял пароли:
Код:
Public Sub www()
    Dim wsSh As Object
    For Each wsSh In Me.Sheets
        wsSh.Unprotect "123456"
    Next wsSh
End Sub
Поменял пароль, выполнил workbook_open, сохранил, закрыл, открыл - никаких ошибок.
Вложения
Тип файла: rar Книга1.rar (11.6 Кб, 28 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 30.03.2013, 15:26   #10
eikhner
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 68
По умолчанию

дак там пароли разные , в макросе 123456 , но с листа этим паролем защиту не снять
конечно ошибку будет показывать .
eikhner вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание процедуры средствами VBA vlkr Microsoft Office Access 3 18.06.2012 09:06
email средствами VBA mister_pog Microsoft Office Access 3 08.06.2011 22:26
переход на заданный сайт или как вставить в заданное место заданный текст Biker89 Общие вопросы Delphi 23 29.05.2011 01:59
Вычисление экспоненты средствами VBA fs444 Microsoft Office Excel 10 30.12.2009 10:42
Как средствами Delphi изменить IP на компе? Ky3Heu, Работа с сетью в Delphi 1 10.08.2009 19:57