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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2010, 21:37   #1
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
Стрелка Выполнение макроса без запроса пароля на листе защищенном паролем

Лист защищен паролем.
На листе есть кнопки с назначенными макросами. Необходимо сделать так, чтобы при нажатии кнопок Excel не требовал ввода пароля.
Т.е. фактически должно одновременно выполнятся два условия - 1)сохранятся защита(паролем) некоторых ячеек от изменений и 2)выполнятся макросы без запроса этого самого пароля.
Пробовал вставлять ActiveSheet.Protect UserInterfaceOnly:=True везде где только можно, в т.ч. в обработчике открытия всей книги. Не помогло - один фиг запрашивает пароль.
Подскажите как реализовать?
Pavarotti вне форума Ответить с цитированием
Старый 18.09.2010, 22:10   #2
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Код:
 With Sheets("ВАШ_ЛИСТ")
     .Unprotect (ВАШ_ПАРОЛЬ)
      .....
      .....
      .....
       .Protect (ВАШ_ПАРОЛЬ)
 End With
vikttur вне форума Ответить с цитированием
Старый 18.09.2010, 23:19   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Попробуйте еще так написать:
Код:
Worksheets(1).Protect Password:="Excel", DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 19.09.2010, 01:16   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Pavarotti Посмотреть сообщение
Лист защищен паролем.
На листе есть кнопки с назначенными макросами. Необходимо сделать так, чтобы при нажатии кнопок Excel не требовал ввода пароля.
Т.е. фактически должно одновременно выполнятся два условия - 1)сохранятся защита(паролем) некоторых ячеек от изменений и 2)выполнятся макросы без запроса этого самого пароля.
Пробовал вставлять ActiveSheet.Protect UserInterfaceOnly:=True везде где только можно, в т.ч. в обработчике открытия всей книги. Не помогло - один фиг запрашивает пароль.
Подскажите как реализовать?
Dim wsheet As Worksheet
For Each wsheet In ActiveWorkbook.Sheets
wsheet .unprotect "123"
Next wsheet
это в начале модуля

For Each wsheet In ActiveWorkbook.Sheets
wsheet .protect "123"
Next wsheet
это в конце


снимет защиту на всех листах а затем поставит назад "123" - это пароль
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 19.09.2010 в 01:22.
R Dmitry вне форума Ответить с цитированием
Старый 19.09.2010, 15:06   #5
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
По умолчанию

Пока не один из вариантов не помог решить проблемку.
Excel все равно при нажатии кнопки(с макросом) запрашивает пароль.
Возможно я что-т не так делаю. Подскажите куда конкретно следует вставит предложенные варианты? Я пробовал в код самого макроса.
Пример одного из вариантов:

Private Sub CommandButton1_Click()

With Sheets("Main Form")
.Unprotect (anadrill)

Dim .... - в начале

в конце -....
Exit For
End If
Next
.Protect (anadrill)
End With
End Sub
Pavarotti вне форума Ответить с цитированием
Старый 19.09.2010, 15:11   #6
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
По умолчанию

Хотя....
Сейчас вот попробовал вариант R Dmitriy'a.
Заработало!!! Правда с нервными миганиями с секундным переключением на другие странички. Но в принципе проблема решена.
Спасибо большое!
Pavarotti вне форума Ответить с цитированием
Старый 19.09.2010, 15:18   #7
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Убрать "нервные мигания" - запретить/разрешить обновление экрана.
Перед выполнением процедуры:
Application.ScreenUpdating = False
После выполнения процедуры:
Application.ScreenUpdating = True
vikttur вне форума Ответить с цитированием
Старый 19.09.2010, 15:25   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Цитата:
Сообщение от Pavarotti Посмотреть сообщение
Пока не один из вариантов не помог решить проблемку...Пример одного из вариантов:
Текст в пароле нужно писать в кавычках:
.Unprotect ("anadrill")

R Dmitriy предупредил, что обрабатываются все листы книги.
vikttur вне форума Ответить с цитированием
Старый 19.09.2010, 15:40   #9
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
По умолчанию

О! Ништяк! Vikttur, спасибо за помощь! кавычки вставил в Ваш вариант и теперь всё прекрасно летает!
Pavarotti вне форума Ответить с цитированием
Старый 22.09.2010, 13:14   #10
Pavarotti
Пользователь
 
Регистрация: 02.12.2009
Сообщений: 48
По умолчанию

Ребята, еще один вопросик по этой же теме...
Выходит, что большинство предложенных вариантов по автоматическому вводу пароля в теле макроса, разблокированию странички и возврату защиты, основываются на конкретном заранее известном разработчику пароле.

Т.е. если возникнет такая ситуация, что пользователь(не разработчик) захочет изменить пароль защиты на листе, а макрос будет пытаться ввести прописанный в нем (уже устаревший) пароль, то разблокировка листа и вообще само действие макроса производиться не будет.

Возможно кто-то уже сталкивался с подобной проблемкой. Подскажите, пожалуйста, варианты решения.
Pavarotti вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Группировки в защищенном листе Leoway Microsoft Office Excel 2 16.06.2010 20:32
Разворачивание/сворачивание данных на защищенном листе Wespe Microsoft Office Excel 12 02.02.2010 12:11
Повторное выполнение макроса Jaroslav Microsoft Office Excel 3 26.07.2009 10:12
Как выполнить макрос на защищенном листе Gennady_58 Microsoft Office Excel 3 18.04.2009 10:31
Выполнение макроса во всех листах Bu$ter Microsoft Office Excel 18 14.11.2008 14:34