Страницы: 1
RSS
Защитить лист после печати
 
Есть книга с листами 01, 02, 03 и т.д. (на каждый день месяца по листу), причем данные листа за 3-е число зависят от данных за 2-е число.
В течении дня в  соответствующий лист вносятся данные. По окончании дня лист распечатывается и за подписью подшивается в папку.

Вопрос: как установить защиту на лист после распечатки, т.е.: 3-го числа работник внес все данные, нажал на кнопку распечатать, лист распечатался и защитился от изменений.

Я понимаю, что это можно сделать макросом, но как именно - не смог найти на форуме.
 
Включить макрорекордер и записать установку защиты - макрос готов. Вызывать его по событию книги  Workbook_BeforePrint
 
В модуль ЭтаКнига
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.Protect Password:="12345"   'Установка пароля
End Sub
Изменено: Sanja - 06.07.2015 14:12:50
Согласие есть продукт при полном непротивлении сторон
 
А SelectionChange тут причём? ))
 
Не знаю, не было никакого SelectionChange  ;). Все эта жара проклятая...
Согласие есть продукт при полном непротивлении сторон
 
Кот: Сметана? Какая сметана? ))
 
Спасибо за помощь!

Вот только проблема оказалось глубже, чем я описал, а именно:
1. Каждый лист уже защищен;
2. На каждом листе есть ячейки, с которых снята защита;

При выполнении этого макроса:
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean)
   ActiveSheet.Unprotect Password:="12345"
   Cells.Select
   Selection.Locked = True
   ActiveSheet.Protect Password:="qwerty"   
End Sub

те ячейки, которые с которых была снята защита до начала печати листа,  оказываются незащищенным после печати листа.  
Пароль меняется на новый.


Что я делаю не так?
Изменено: Илья - 06.07.2015 15:56:05
 
Цитата
Илья написал: Что я делаю не так?
А как должно быть "так"?
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх