Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как через макросы снимать и ставить защиту листа
 
Apos, можно заблокировать лист так, чтобы на макросы эта блокировка не распространялась - то есть для пользователь ничего не сможет поменять, а у макроса будут права на изменение ячеек (даже заблокированных).

Включается эта блокировка макросом:
Код
Sheet1.Protect UserInterfaceOnly:=True
Соответственно, в макросе можно задать и другие параметры блокировки листа - например, разрешить пользователю форматировать ячейки или пользоваться автофильтром с сортировкой. При этом пользователь изменить заблокированные ячейки не сможет, а макрос не будет на этом спотыкаться и весьма успешно будет все менять ;-)

Цитата
Apos написал:
Код
Sheets("название_листа").Select
ActiveSheet.Unprotect
Пардон, конечно, но зачем вырезать гланды через.. кхм..? А если пользователь поменяет название листа, то Ваш макрос перестанет работать...

Заходите в VBA, там ищите окно Properties: если его нет - нажимаете F4. В дереве проекта выбираете тот лист, с которым работаете - в окно свойств загружаются все свойства листа, которые можно поменять во время разработки. Самое первое свойство - (Name) - это имя листа, которое может использоваться в коде (например, Sheet1 как в моем примере выше). Это имя можно изменить только во время разработки, во время выполнения у этого свойства включается атрибут read-only.

И, соответственно, по этому имени и можете обращаться к данному листу; после чего Вас уже не будет интересовать как этот лист называется и как переименовал его пользователь: Excel будет точно знать, что действия нужно выполнять именно с этим листом.
Изменено: Samaretz - 24.07.2015 08:24:28
Страницы: 1
Наверх