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

Страницы: 1
Запуск макроса при нахождении активной ячейки в указанном диапазоне (защита умной таблицы)
 
Пытливый, спасибо за помощь!!!
В итоге получился по-моему неплохой способ защиты формул в "умной таблице" от кривых ручек, с применением стандартного способа защиты листа. По поиску в нете я его вроде не нашел, может кому пригодится.

Если активная ячейка находится в пределах указанного диапазона (у меня это ячейки в столбце А, начиная с 3-й, имя диапазона "ДиапазонРП"), то защита неактивна, и соответственно доступно стандартное автозаполнение "умной таблицы" вниз, удаление строк и пр.
Если же пользователь перешел на ячейки в иных столбцах (вне указанного в макросе диапазона) - то автоматически включается защита листа (с указанным в макросе паролем), при этом возможность редактирования пользователем данных в ячейках определяется установленному Вами заранее формату ячейки (защищаемая либо нет).
Т.е. предварительно перед включением макроса необходимо установить формат "защищаемая ячейка" только на тех столбцах/ячейках "умной таблицы", которые необходимо защитить от изменений (обычно формулы).

Макрос вставляется в модуль листа:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("ДиапазонРП") 'диапазон с именем, имя - строка, берем в кавычки
If Intersect(KeyCells, Target) Is Nothing Then 'если активная ячейка находится вне диапазона "ДиапазонРП", то...
ActiveSheet.Protect Password:="1234" 'включить защиту листа с паролем "1234"
Else 'Если нет, то...
ActiveSheet.Unprotect Password:="1234" 'отключить защиту листа с паролем "1234"
End If
End Sub
Изменено: ArtemiyK - 30.10.2015 09:38:47
Запуск макроса при нахождении активной ячейки в указанном диапазоне (защита умной таблицы)
 
Имеется «умная таблица» (нужна именно она, т.к. столбцов гораздо больше; нужна работающая функция авторасширения). Файл прилагаю. Возможен ли макрос, который будет:
- отключать защиту листа (пароль 1234), если активная ячейка находится в диапазоне «ДиапРП» (лист «Учет РП», A3:A9),
- включать защиту листа (пароль 1234), если активная ячейка находится вне диапазона «ДиапРП» (лист «Учет РП», A3:A9).
Т.е. формулы в нужных столбцах умной таблицы будут защищены, а для расширения таблицы «вниз» пользователю будет достаточно сделать активной ячейку А10 (в данном примере), заполнить ее, и стандартным способом расширить «вниз» умную таблицу. Как только он переходт к другому столбцу – защита включается снова.
Вроде бы можно использовать «if intersect(activecell, ДиапРП) is nothing then …», но знаний не хватает.
Заранее спасибо.
Страницы: 1
Наверх