Страницы: 1
RSS
Защита диапазона ячеек по кнопке макросом
 
Здравствуйте, дорогие участники форма!

Есть файл, в котором защищены определенные ячейки. В незащищенных ячейках пользователи заполняют ежемесячно данные и отдают их на проверку руководителю. Руководителю после проверки надо заблокировать эти ячейки, т.е.:
1) снять защиту с листа
2) выделить диапазон ячеек и установить у них флаг "Защищаемая ячейка" в Формате ячеек
3) защитить лист паролем.

Можно ли облегчить действия руководителя и эту процедуру делать по кнопке, на которую закрепить запуск макроса? Диапазоны ячеек фиксированы, только их несколько: один проверяется и блокируется в начале месяца, другой проверяется и блокируется в конце месяца. Может быть можете подсказать макрос для этого (потому как сама еще совсем не сильна в этом)? Путем поиски на просторах интернета и у вас на форуме не смогла найти подобный макрос.

Пример файла, в котором нужно защищать таким образом ячейки прилагаю.
Изменено: dasharak - 02.03.2017 11:46:30
 
в Вашей схеме есть одно хрупкое звено
Цитата
Руководителю после проверки ...
а проверял он данные или нет неизвестно, мог открыть файл и тут же нажать кнопку
думаю можно избавить руководителя от этой рутины, а кнопку может нажать тот, кто данные готовил. конечный результат тот же - данные подготовлены и заблокированы от последующих изменений.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Игорь, здравствуйте!

Дело в том, что руководитель блокирует ячейки, чтобы как раз тот, кто готовил данные после их заполнения не мог эти данные изменить. В нашем случае именно руководитель заинтересован в проверке и блокировке данных, поэтому не в его интересах просто нажимать кнопку без проверки.

Суть вот в чем:
- сотрудник ввел плановые данные на месяц, руководитель проверил, заблокировал и сотрудник не может изменить плановые данные в своих интересах
- сотрудник ввел фактические данные за месяц, руководитель проверил, заблокировал и сотрудник не может изменить фактические данные
Цель: защитить от изменений данные прошлых периодов.
Изменено: dasharak - 03.03.2017 12:00:02
 
пробуйте записать эти действия макрорекодером... какой вопрос по xl после этого останется?  ;)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
dasharak, типа такого что-нить?
1. Двойной щелчек по ячейке с надписью "Городское ориентирование. ПЛАН на ГОД"
2. После появления UserForm на клавиатуре набираете "12345". Кнопки должны активироваться.
Остальное написано на кнопках. Действия применяется к выделенным ячейкам.
Если что-нибудь подкрутить под Вашу задачу или не понятно, то спрашивайте...  ;)
Изменено: AAF - 04.03.2017 14:40:00
 
AAF, здравствуйте!

Да, что-то типа такого - огромное спасибо! Однако есть несколько вопросов:
1. Можно ли оставить только 3 кнопки: "Заблокировать выделенные ячейки", "Разблокировать выделенные ячейки", "Установить защиту листа"?
2. При нажатии кнопки "Установить защиту листа" сейчас лист блокируется без пароля - можно сделать, чтобы с вводом пароля блокировался? при чем этот пароль всегда один и не меняется (т.е. его можно где-то внутри макроса записать)
3. Возможно, ли сделать кнопки не выделенных ячеек, а по конкретным диапазонам (например, "Заблокировать ЯНВАРЬ", "Заблокировать ФЕВРАЛЬ"..."Заблокировать ПЛАН", "Заблокировать ФАКТ"...)?
4. И последнее: у меня есть несколько отчетов, где требуется такая функция - как я могу перенести этот макрос в них?

Заранее благодарю за ответ.
 
dasharak, Можно.  :)
1. Просто удалить лишние кнопки... Они были сделаны по просьбе трудящихся для упрощения редактирования бланков (для тех кто имеет право, поэтому и пароль 12345)
2. Можно
3.
Цитата
по конкретным диапазонам (например, "Заблокировать ЯНВАРЬ"
- Можно.

Но не понятно:
Цитата
Заблокировать ПЛАН", "Заблокировать ФАКТ
Это где такие? Просто не особо понятен принцип заполнения таблицы...  :oops:

И формул по горизонтали нет...?  8-0
4. Конечно. Вопрос только в том, насколько отличаются отчеты по структуре.. Настолько и подкрутить надо.

Вечером до дома доберусь и сделаем.
Изменено: AAF - 06.03.2017 14:10:21
 
Установить защиту листа: Worksheet.Protect Method (Excel)
Снять защиту листа: Worksheet.Unprotect Method (Excel)
Блокировка диапазона: Range.Locked Property (Excel)
 
Цитата
написал:
Установить защиту листа:  Worksheet.Protect Method (Excel)
Снять защиту листа:  Worksheet.Unprotect Method (Excel)
Блокировка диапазона:  Range.Locked Property (Excel)
Добрый день!
Перенес ваш макрос из файла "Городское управление" в свой файл, почему то не срабатывает кнопка "Заблокировать выделенные ячейки" в чем может быть ошибка?
 
начнем с того, что бы блокировать какой-то диапазон последовательность действий должна быть такой:
1. снять защиту листа
2. блокировать диапазон
3. установить защиту листа
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
написал:
начнем с того, что бы блокировать какой-то диапазон последовательность действий должна быть такой:
1. снять защиту листа
2. блокировать диапазон
3. установить защиту листа
Спасибо за ответ! Выполнил данный порядок действий, но блокируется весь лист  
 
Цитата
но блокируется весь лист  
по умолчание у всех ячеек листа поднят флаг защищаемая ячейка. защитили лист - все защищены, если вы предварительно не снимали флаг "защитить" с каких-то диапазонов
нет в Excele механизма защитить диапазон
есть только защитить лист
а уже на самом листе можно указать какие ячейки будут защищены, а какие нет
защищенными они станут, ТОЛЬКО когда защитите лист и никак по другому
Изменено: Ігор Гончаренко - 02.08.2022 10:44:36
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Игорь, спасибо Вам большое! Все получилось, извините за чайниковские вопросы!  
Страницы: 1
Наверх