Защита данных в Microsoft Excel
Microsoft Excel предоставляет пользователю несколько, условно выражаясь, уровней защиты - от простой защиты отдельных ячеек до шифрования всего файла шифрами крипто-алгоритмов семейства RC4. Разберем их последовательно...
Уровень 0. Защита от ввода некорректных данных в ячейку
Самый простой способ. Позволяет проверять что именно пользователь вводит в определенные ячейки и не разрешает вводить недопустимые данные (например, отрицательную цену или дробное количество человек или дату октябрьской революции вместо даты заключения договора и т.п.) Чтобы задать такую проверку ввода, необходимо выделить ячейки и выбрать на вкладке Данные (Data) кнопку Проверка данных (Data Validation). В Excel 2003 и старше это можно было сделать с помощью меню Данные - Проверка (Data - Validation). На вкладке Параметры из выпадающего списка можно выбрать тип разрешенных к вводу данных:
Соседние вкладки этого окна позволяют (при желании) задать сообщения, которые будут появляться перед вводом - вкладка Сообщение для ввода (Input Message), и в случае ввода некорректной информации - вкладка Сообщение об ошибке (Error Alert):
Уровень 1. Защита ячеек листа от изменений
Мы можем полностью или выборочно запретить пользователю менять содержимое ячеек любого заданного листа. Для установки подобной защиты следуйте простому алгоритму:
- Выделите ячейки, которые не надо защищать (если таковые есть), щелкните по ним правой кнопкой мыши и выберите в контекстном меню команду Формат ячеек (Format Cells). На вкладке Защита (Protection) снимите флажок Защищаемая ячейка (Locked). Все ячейки, для которых этот флажок останется установленным, будут защищены при включении защиты листа. Все ячейки, где вы этот флаг снимете, будут доступны для редактирования несмотря на защиту. Чтобы наглядно видеть, какие ячейки будут защищены, а какие - нет, можно воспользоваться этим макросом.
- Для включения защиты текущего листа в Excel 2003 и старше - выберите в меню Сервис - Защита - Защитить лист (Tools - Protection - Protect worksheet), а в Excel 2007 и новее - нажмите кнопку Защитить лист (Protect Sheet) на вкладке Рецензирование (Reveiw). В открывшемся диалоговом окне можно задать пароль (он будет нужен, чтобы кто попало не мог снять защиту) и при помощи списка флажков настроить, при желании, исключения:
Т.е., если мы хотим оставить пользователю возможность, например, форматировать защищенные и незащищенные ячейки, необходимо установить первых три флажка. Также можно разрешить пользователям использовать сортировку, автофильтр и другие удобные средства работы с таблицами.
Уровень 2. Выборочная защита диапазонов для разных пользователей
Если предполагается, что с файлом будут работать несколько пользователей, причем каждый из них должен иметь доступ в свою область листа, то можно установить защиту листа с разными паролями на разные диапазоны ячеек.
Чтобы сделать это выберите на вкладке Рецензирование (Review) кнопку Разрешить изменение диапазонов (Allow users edit ranges). В версии Excel 2003 и старше для этого есть команда в меню Сервис - Защита - Разрешить изменение диапазонов (Tools - Protection - Allow users to change ranges):
В появившемся окне необходимо нажать кнопку Создать (New) и ввести имя диапазона, адреса ячеек, входящих в этот диапазон и пароль для доступа к этому диапазону:
Повторите эти действия для каждого из диапазонов разных пользователей, пока все они не окажутся в списке. Теперь можно нажать кнопку Защитить лист (см. предыдущий пункт) и включить защиту всего листа.
Теперь при попытке доступа к любому из защищенных диапазонов из списка, Excel будет требовать пароль именно для этого диапазона, т.е. каждый пользователь будет работать "в своем огороде".
Уровень 3. Защита листов книги
Если необходимо защититься от:
- удаления, переименования, перемещения листов в книге
- изменения закрепленных областей ("шапки" и т.п.)
- нежелательных изменений структуры (сворачивание строк/столбцов при помощи кнопок группировки "плюс/минус")
- возможности сворачивать/перемещать/изменять размеры окна книги внутри окна Excel
то вам необходима защита всех листов книги, с помощью кнопки Защитить книгу (Protect Workbook) на вкладке Рецензирование (Reveiw) или - в старых версиях Excel - через меню Сервис - Защита - Защитить книгу (Tools - Protection - Protect workbook):
Уровень 4. Шифрование файла
При необходимости, Excel предоставляет возможность зашифровать весь файл книги, используя несколько различных алгоритмов шифрования семейства RC4. Такую защиту проще всего задать при сохранении книги, т.е. выбрать команды Файл - Сохранить как (File - Save As), а затем в окне сохранения найти и развернуть выпадающий список Сервис - Общие параметры (Tools - General Options). В появившемся окне мы можем ввести два различных пароля - на открытие файла (только чтение) и на изменение:
Как избежать взлома защищенных листов в ексель?
Спасибо
взломать будет труднее
Спасибо за уточнение - будем пользоваться
или имеется ввиду пароль на сам файл?
Пара вопросов по Уровню 0. Защита от ввода некорректных данных в ячейку.
Вопрос 1. Есть поле, в которое должен вводиться пользователем почтовый индекс. Т.е. целое число, длиной 6 символов. Однако кроме типа данных Эксель просит указать еще и диапозон верных значений. Можно было бы задать диапозон 100000-999999, но в него не попадут индексы, начинающиеся с нуля. Как правильно задать значения?
Вопрос 2. Редко кто вводит индекс с клавиатуры, обычно предпочитают копировать-вставить. Как защитить ячейку от вставки некорректного числа и изменения формата (на формат ячейки-источника)?
2. Тоже только макросом - перехватывать копирование-вставку.
Воспользовался вашим скриптом для внесения текущей даты в ячейку при внесении изменений в предыдущую ячейку. Пробую защитить лист книги по этому методу. Но скрипт теперь не работает на заблокированных ячейках. Как можно исправить ситуацию.
Задача такая: есть выпадающий список в ячейке. При выборе значения ячейки автоматически вставляется дата, время и имя компьютера в соседних ячейках. Но значения этих ячеек изменять нельзя. Как можно реализовать данный алгоритм.
Буду очень благодарен если поможете!!!
забыла пароль снятия защиты общей книги excel, как снять пароль, что можно сделать в таких ситуациях?
спасибо!
Очень надеюсь на вашу помощь )
Столкнулся с одной проблемой при защите ячеек в "умных таблицах". Дело в том, что в таких таблицах данная защита не работает, точнее работает, но только за переделами диапазона ячеек "умной таблицы". Подскажите, как мне заблокировать то, что я хочу?
Спасибо за урок по защите. Подскажите, как сделать, чтобы определенные защищенные ячейки при копирование в той же книге и листе сохранялись защищенные. Спасибо.
есть 4-ро пользователей. Первый - главный (может всегда видеть и редактировать все), второй - менеджер (может видеть также всегда только часть листов и только их редактировать), третий - бухгалтер ( может видеть все и всегда, но ничего редактировать не может), четвертый - регистратура (доступ только к формированию первичных документов СЕГОДНЯШНЕГО дня и видит предыдущие два дня. и постоянный доступ без редактирования к некоторой базе данных)
Спасибо
Подскажите пожалуйста:
есть таблица с данными, часть таблицы нужно оградить от видимости, я сгруппировала данные и запоролила их.
но теперь группировкой по строкам пользоваться я тоже не могу.
можно ли поставить защиту на группировку столбцов, но сохранить возможность пользования группировкой по строкам:?:
заранее спасибо
в столбце таблицы есть формула, которая протягивается на весь столбец, за исключением некоторых ячеек с константами, которые нельзя менять.
Но если я меняю формулу в одной из ячеек, мне предлагает изменить её и во всём столбце ("Заполнить все ячейки данного столбца указанной формулой"), в том числе и в тех ячейках с константами. Как это можно предотвратить, как их защитить от автозамены?
Есть колонка в таблице, в которой стоит одинаковая формула во всех ячейках за исключением некоторых, в которых должны стоять константы. Эти некоторые ячейки защищены от изменения.
Теперь, когда я изменяю формулу в одной из ячеек, мне предлагает "Заполнить все ячейки данного столбца указанной формулой", на что у меня есть два варианта действий:
1. Защищаю лист от изменений и соглашаюсь заполнить ячейки формулой - выдаёт ошибку (предупреждение) о защите, и изменения не происходят.
2. Не защищаю лист от изменений и соглашаюсь заполнить ячейки формулой - меняет на новую формулу во всём столбце, в том числе и в защищённых ячейках, изменяя константу на формулу.
Протяжка формулы также не помогает на защищённом листе.
Как можно автозаполнять столбец формулой, не изменяя защищённые ячейки???
Вопрос следующий. Есть сводная таблица с несколькими фильтрами. В одном из них директора регионов и их показатели. Можно как-то защитить фильтр, чтобы они не могли смотреть сводные данные других коллег, а могли фильтром выбрать только себя?
В любом другом случае гарантии никакой - защита в Excel слабоватая.
Во-первых, хочу поблагодарить за сайт, мастер-класс, PLEX и всё остальное!
Во-вторых, вопрос, который, возможно лучше открыть на форуме отдельной темой:
В защищенный лист с проверкой данных вставляют скопированные с других листов неверные данные.
"Проверка" их не обводит, сообщение об ошибке не выдаёт, всё потому что лист защищён (собственно, от того, чтобы эту проверку не убрали.
Как исключить ввод неверных данных копированием?
Заранее благодарю!
P. S. в инете искал ответ, не нашёл.
такая ситуация: 2 связаных excel таблица1 и таблица2. В таблица1 список контрагентов из нее в таблица2 этот список клиентов обновляется. Потом их из таблицы2 берут их идентификатор и дальше с ним работают в других базах данных. Пользователь может в таблица2 редактировать только один столбец, чтобы случайно не изменил данные контрагента. Лист заблокирован, но тогда не проходит обновление данных из связанной таблицы.
ВОПРОС: как настроить синхронихацию таблиц в данных условиях и если нужно это сделать макросом, то какому событию отвечает нажатие кнопки "Обновить все". Там есть метод WorkBook.RefreshAll, но перед ним нужно разблокировать лист а потом заблокировать снова.
Спасибо