Страницы: 1
RSS
Разрешить макросу работать с группировкой данных при защите листа
 
Здравствуйте.
Имеется два макроса. Первый ( находится в файле во вложении ) даёт возможность защищать лист с вводом пароля, выбирать необходимые для защиты листы,  но после его включения нельзя работать с группировкой данных на листе.
Второй макрос защищает лист и позволяет работать с группировкой, но ввести пароль нельзя (т.е снять защиту можно просто через рецензирование - снять защиту листа). Его Код:  
Код
Sub Protect_and_Structure()    
ActiveSheet.EnableOutlining = True    
ActiveSheet.Protect Contents:=True, Scenarios:=True, UserInterfaceOnly:=True    
End Sub   
Подскажите, пожалуйста, в чем надо изменить первый макрос(который находится в моём файле), чтобы он позволял работать с группировкой как второй макрос.  
 
Проверяйте
Изменено: Sanja - 23.03.2018 08:18:33
Согласие есть продукт при полном непротивлении сторон
 
Цитата
angel1532 написал:
но ввести пароль нельзя
так Вы его просто и не устанавливаете. Надо дописать в метод Protect пароль:
Код
ActiveSheet.Protect Password:="123", Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Sanja, не получается, группировка при использовании макроса не работает и защита устанавливается на все ячейки ( в т.ч и на те, у которых в формате указано, что это незащищаемая ячейка) :(

Цитата
Дмитрий Щербаков написал: Надо дописать в метод Protect пароль
Я так пробовала делать, но этот макрос работает только во время текущей работы с файлом, при повторном открытии работа с группировкой недоступна и для того, чтобы работать с ней заново необходимо снять защиту, потом ее опять установить. Это долго. Я бы хотела изменить первый макрос с формой ( где можно выбрать необходимые листы для защиты ), но при этом чтобы была возможность работать с группировкой.
 
Цитата
Karataev написал: тестируйте файл.
У Вас такая же история: дома на своем ПК все работает - скачанный с сайта нет  :)  
Согласие есть продукт при полном непротивлении сторон
 
Sanja, да увидел проблему.

После открытия файла нужно разрешить макросы. После открытия файла запускается макрос, который изменяет защиту.
Проблема в том, что параметр "UserInterfaceOnly" работает, пока не закрыть файл. После открытия файла, нужно снова устанавливать этот параметр.
Макрос находится в модуле "ЭтаКнига".
И внесены изменения в событие "OKButton_Click".
Изменено: Karataev - 25.03.2018 21:02:42
 
Цитата
Karataev написал:
Прикрепленные файлы
Пример_kar.xlsm  (23.13 КБ)
Большое спасибо! Все работает :))
 
Вот здесь описывал куда и как правильно вставлять такой код: Как оставить возможность работать с группировкой/структурой на защищенном листе?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий Щербаков, я не могу понять взаимосвязь между ActiveSheet.EnableOutlining и UserInterfaceOnly. А Вы понимаете?
По логике, параметр UserInterfaceOnly разрешает макросу работать с листом без снятия защиты. И какое отношение UserInterfaceOnly имеет к группировке, у меня в голове не укладывается. На первый взгляд какая-то бредятина. Может быть из старых версий пришло (до 1997), где это надо было зачем-то.
 
Добрый день!

Вопрос- почему этот макрос может не работать на MAC?

У меня все работает, отправляю коллеге, у которого MAC и не работает у него.
Файл приложила
 
Наталия Соловьева, Ваш вопрос связан с группировкой?
 
Да, не работает как раз макрос, которые разрешает группировать при защите листа.
Но если это не по теме, то поищу темы по MAC и работе макросов в ветках
 
Да, по МАС есть отдельная ветка.
Страницы: 1
Наверх