Страницы: 1
RSS
VBA-Excel-cобытие, которое срабатывает при снятии защиты с листа
 
Есть ли какое-нибудь событие в VBA-Excel, которое сработает, если снять защиту с Excel-листа?

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

Моя идея:
при открытии книги будет запускаться процедура, которая будет запускаться каждые 5 минут и смотреть - защищён лист или нет. Если не защищён, то процедура поставит защиту на лист.

Есть ли другие способы?
Изменено: Скрипт - 16.07.2013 09:51:51
 
ИМХО, это самый лучший способ
Учимся сами и помогаем другим...
 
хотя если посмотреть в глубь:
>>> Смысл такого действия макроса в том, чтобы пользователь не забывал делать защиту листа.
для чего это необходимо?
может проще повесить макрос на WorkSheet_change?
Учимся сами и помогаем другим...
 
А пользователь сохранит и закроет книгу в промежутке когда защита снята ;) ИМХО - лучше повесить на закрытие книги
Согласие есть продукт при полном непротивлении сторон
 
ber$erk, пользователь может снять защиту и не делать никаких изменений. Тогда защита не будет включена.

Sanja, защита включается при открытии книги.
Изменено: Скрипт - 16.07.2013 09:41:25
 
Ну так если никто не делает изменений, то зачем боятся о защите?  :D
Учимся сами и помогаем другим...
 
Цитата
защита включается при открытии книги.
А зачем тогда пользователю ее вообще включать? - при следующем открытии она сама восстановится
Согласие есть продукт при полном непротивлении сторон
 
ber$erk, человек забудется и начнёт не туда данные заносить.

Sanja, если с книгой будут работать несколько часов, то до следующего открытия ещё много чего можно сделать.
 
тогда вопрос: этот человек вообще может снимать защиту? или вы пытаетесь защитить лист от взлома?
Учимся сами и помогаем другим...
 
ber$erk, защита ставится от случайных изменений.
 
Цитата
человек забудется...ещё много чего можно сделать...
, улыбнуо  :D
от кривых ручек другими методами можно пользоваться (защита конкретных ячеек, проверка водимых данных, обработка ошибок и т.д.).
Согласие есть продукт при полном непротивлении сторон
 
тогда при открытии файла генерируйте случайный код защиты листа.
Учимся сами и помогаем другим...
 
Цитата
Sanja пишет:
от кривых ручек другими методами можно пользоваться (защита конкретных ячеек...
Защита конкретных ячеек включается при защите листа.

Sanja, на листе будут ячейки, куда можно вносить данные при включённой защите. Но может возникнуть ситуация, что нужно будет отключит защиту для каких-то непредвиденных целей.
Изменено: Скрипт - 16.07.2013 09:59:02
 
Вотбыла похожая тема (там правда про закрытие книги) но она осталась без решения.
Согласие есть продукт при полном непротивлении сторон
 
Ставьте защиту на смену выделения ячейки.
Пользователь выделил ячейку, снял защиту, что-то записал, перешёл в другую - защита восстановилась.
Если сохранит файл так, ничего не записав - не беда, при открытии или при первом изменении выделения защита восстановится.
Ну и можно ведь ещё её ставить при закрытии книги, при смене активного листа, при деактивации книги/листа, при шевелении мышью :)

Не проверял! :)
Страницы: 1
Наверх