Страницы: 1
RSS
Защита файла от несанкционированного копирования
 
Всем доброго дня. Вопрос такой. Хочу сделать защиту от копирования для расчетного файла с формулами. Пользователь должен иметь возможность копировать, добавлять и изменять данные в ячейках на открытых листах. Но при этом файл должен открываться на строго определенных компьютерах. В файле содержатся стандартные формулы excel.
Что было реализовано:
1. Прописал в макросах привязку к серийному номеру диска.
2. Поставил пароль на VBA (пароль 0000).
3. Что бы не дать возможность работать в файле при отключенных макросах, прописал код для скрытия/показа определенных листов при закрытии/открытии файла. Тем самым заставляю пользователя включать макросы.
4. Что бы не дать возможность сохранить файл без поддержки макросов, и тем самым избавиться от защиты, прописал код для скрытия листов перед сохранением файла и открытием листов после сохранения.
Теперь о проблемах: открыв файл на разрешенном компьютере, пользователь может выделить листы и скопировать их в новую книгу, тем самым удаляя весь защитный код. Один из вариантов решения - писать пользовательские функции на макросах, но это нереально, т.к. формулы используются очень большие.
Это мои первые шаги в программировании VBA, поэтому ничего путного не приходит в голову. Разве нет запрещения копирования листов в excel, но при этом не через функцию запрета выделения ячеек, т.к. эти ячейки нужно редактировать.
Изменено: Антон Антон - 26.07.2021 15:18:18
 
Цитата
Антон Антон написал:
Разве нет запрещения копирования листов в excel, но при этом не через функцию запрета выделения ячеек
ставите защиту на книгу(Рецензирование -Защита книги)
защищаете листы, оставив разрешенными к редактированию и выделению только нужные ячейки:
Защита листов и ячеек в MS Excel
Как разрешить изменять только выбранные ячейки?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Сделал защиту книги. Почему-то выдает "run-time error 1004 нельзя установить свойство visible класса worksheet"
Изменено: Антон Антон - 27.07.2021 10:02:55
 
Цитата
Антон Антон написал:
Почему-то
при защищённой книге нельзя менять видимость листов, делайте в обратном порядке - сначала скрыли, потом защитили книгу
Соблюдение правил форума не освобождает от модераторского произвола
 
Так файл должен тогда это делать на уровне макроса. Иначе теряется смысл всей защиты. Есть ли код для установления и снятия такой защиты?
 
Цитата
Антон Антон написал:
Есть ли код
в смысле?
Код
ThisWorkbook.Protect
ThisWorkbook.Unprotect
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Антон Антон написал:
Есть ли код для установления и снятия такой защиты?
А гугл и здесь не помогает? А макрорекордер и справка?  ;)  Старайтесь сначала искать ответ самостоятельно - иначе так и будете по любому, даже самому простому вопросу, бежать на форум и уточнять можно это или нет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо всем большое! Очень помогли. В принципе проблема решена. Поставил макрос на постановку/снятие защиты при определенном действии, единственно поставил с паролем.
Все же я не понимаю почему не разрываются связи в формулах с другими листами при простом копировании из одной книги в другую. Причем в новой книге в формуле появляется ссылка на исходный файл. И формула работает даже при удалении исходного файла.
Страницы: 1
Наверх