Страницы: 1
RSS
Как макросом запретить копирование целого листа? Целиком.
 
Доброй ночи, уважаемые Форумчане.
Бродил-бродил, а ответа на свой вопрос так и не нашёл.
Дело в чём... Хочу максимально затруднить копирование информации с файла. (.xlsb). Самая главная информация спрятана скрытием столбцов. Ну, и защита листов.
На сейчас остановка за тем, что уже защищённый паролем лист прекрасно копируется в файл с более простым для взлома форматом, например, .xlsm.
Вопрос: как макросом запретить копирование целого листа? Целиком. Не скрытого. (Защита отдельных ячеек и групп ячеек НЕ интересует).
Спасибо.
 
Храните ключевые данные на отдельном, скрытом листе.
 
Цитата
с более простым для взлома форматом, например, .xlsm
абсолютно никакой разницы тут нет, - защита снимается за секунду с листа файла Excel любого формата (XLS, XLSB, XLSX, XLSM)

Скройте ярлычки листов, поставьте защиту на лист и книгу, в защите листа запретите выделение заблокированных и незаблокированных ячеек, —
для большинства пользователей это весьма осложнит копирование
Ну или поместите на лист Excel СКРИНШОТ вашего прайса, —
тогда точно замучаются копировать

Но, поймите, это всё нисколько не защитит вас от копирования информации
Если надо будет скопировать, — просто сфоткают экран, и посадят девочку набивать в Excel данные с фотки...

Защитить СКРЫТЫЕ данные - это можно, но тоже сложно (штатная защита - не вариант, хотя есть варианты с «очень скрытым» листом, откуда будут подтягиваться данные)
 
Доброе время суток
Цитата
варианты с «очень скрытым» листом
Тоже не очень хороший вариант, увы. Можно просто скопировать макросом содержимое скрытых листов в новую книгу. Защита тут не помогает.
 
Не, ну ясно, что в Экселе с защитой не очень. Так я и понимаю, что не смогу сделать суперзащищённый файл, поскольку знаний не хватит. Но "обломать" энтузиастов с нездоровым любопытством, стремлением наскоком отхватить кусок шары и без профессиональной подготовки ведь можно...
У меня, действительно ключевые данные на "очень скрытых" листах. Другие листы (рабочие), что нужны непосредственно для работы, насколько возможно со скрытыми столбцами. Получается, что "видно" те ячейки, которые защищать просто не нужно. Нет необходимости. Это уже результаты вычислений (значения формул). А я хочу защитить сам счётчик (справочники и формулы), и вот формулы частично находятся на "рабочих" листах в скрытых столбцах. Вот.
Что касается Ваших советов...
Игорь, Если я скрою ярлычки листов, то как открывать нужный лист? Делать дополнительный лист с "активным оглавлением"? Или есть другой способ?
Возвращаемся к первоначальному вопросу-- как можно макросом запретить копировать лист целиком?
Про просто сфоткать экран, а потом набить от руки--в моём случае это не поможет, т.к. защищаемая информация скрыта (см.выше).

Про вариант от Андрей VG. Про просто скопировать макросом...
Но, наверное, можно поставить запрет открывать эту книгу, если открыта ещё одна. И открывать ещё одну, если открыта эта книга. Так можно устранить эту угрозу?
 
Цитата
iNic пишет: как можно макросом запретить копировать лист целиком
Цитата
iNic пишет: можно поставить запрет открывать эту книгу, если открыта ещё одна
Такая защита элементарно обходится отключением макросов на уровне приложения.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Такая защита элементарно обходится отключением макросов на уровне приложения.
А я сделаю макрос, который будет создавать какой-то элемент, без которого файл или вообще не сможет работать, или будет работать с периодическими ошибками (что ещё хуже, кстати). Получится, что с отключенными макросами весь файл будет не работоспособен. Получается, что вору надо будет анализировать код, а это уже "наскоком" не решишь. Я правильно рассуждаю?
 
Условно-действенный вариант.
При открытии книги собрать имена существующих листов в массив.
1. Копирование листа в пределах книги. В процедуре Private Sub Workbook_SheetActivate(ByVal Sh As Object) лист с новым именем удалить.
2. При копировании в другую книгу. В процедуре Private Sub Workbook_Deactivate() удалить лист с существующим в массиве именем (или закрыть новую книгу без сохранения.
----------------
Цитата
Игорь пишет: и посадят девочку набивать в Excel данные с фотки...
Девочку предлагаю посадить вооружить FineReader'ом
 
Ну удивите нас. Если файл не будет работать - как он откроется, чтобы запустить макрос, который его "починит"?
Если под работоспособностью подразумевается функционал макросов - то если человеку нужна инф-ция - его это не остановит, т.к. Ваш функционал для копирования ему вряд ли будет нужен....
Оптимальный вариант защиты Вам уже предложили - защита листа, плюс защита книга(структура). В большинстве случаев этого хватит за глаза.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Но, наверное, можно поставить запрет открывать эту книгу,
Как вы это себе представляете? К тому же, никто не запрещает вот такой код преобразовать в код для vbs или js скрипта, что бы обойти макрозащиту (код не тестировал, как пример).
Скрытый текст

Можно и вариант копирования сделать и другой - только значения.
Изменено: Андрей VG - 12.08.2014 10:31:19
 
Ключевые данные - в имена. Имена скрыть.
 
The_Prist  
Цитата
Если файл не будет работать - как он откроется, чтобы запустить макрос, который его "починит"?
Поскольку весь мой файл--это, по-сути, многофункциональный счётчик, который постоянно берёт данные с некоего Справочника ("очень скрытый лист" ;) , то мне достаточно исказить Справочник, чтобы весь файл перестал правильно работать, т.е. расчитывать данные (я это имею ввиду, когда говорю о работе файла). Я и предполагаю в код каждого макроса вначале вставлять фрагмент, который вставляет верные данные в Справочник, а конце макроса--фрагмент (а хоть бы и в нескольких местах...), который искажает Справочник. Таким образом, по окончанию каждого макроса Справочник всегда будет искажённым. Для того же, чтобы поймать момент, когда Справочник уже исправлен и ещё не искажён, придётся сломать пароль VBA, анализировать код. А это уже не "схватить шару наскоком".

Дальше, Игорь писал
Цитата
Скройте ярлычки листов, поставьте защиту на лист и книгу
Ведь ярлычки как я снял, так вор их и поставил ("вручную"). И опять можно копировать, хоть и защищённый паролем лист.  И опять, "как запретить копирование целого листа?".
С защитой книги тоже проблема. Защитил я её паролем (структуру). Закрыл файл. Открыл--а макросы НЕ работают и висит объявление Системы безопастности, что ОТКЛЮЧЕНЫ. Захожу в "Безопасность", там "пимпа" стоит на Включено ( и макросы и АктивХ. Как понять??? Что делать?
Изменено: iNic - 12.08.2014 18:27:31
 
1) Как при открытии книги собрать имена существующих листов в массив?
2) Как при копировании в эту книгу в процедуре Private Sub Workbook_SheetActivate(ByVal Sh As Object) лист с новым именем удалить?
3) Как при копировании в другую книгу в процедуре Private Sub Workbook_Deactivate() удалить лист с существующим в массиве именем (или закрыть новую книгу без сохранения?
Изменено: iNic - 12.08.2014 19:24:00
 
Как (1, 2, 3) - это уже другие темы. Не нужно все в кучу.
 
Понял. В предыдущем своём посте добавил ссылки на вновь созданные темы.

Ответ в конце темы №3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  :)
Всем спасибо за участие.
Изменено: iNic - 12.08.2014 21:06:51
 
iNic, вложения в защиту файлов Excel НЕ окупаются.
не тем вы занимаетесь сейчас...

вот вы потратите 1 день на защиту, - мне потребуется 5 минут на взлом (а обычному пользователю - неделя)
а если вы потратите месяц на защиту файла - мне потребуется 20 минут на взлом (а обычному пользователю - 2 недели - он сам попробует, не получится, он обратится к спецу, который все сделает за несколько часов)

от спецов не защититься
от обычных пользователей вы уже всё защитили

смысл дальше тратить время, и мудрить непонятные алгоритмы на макросах?
(которые у 90% пользователей отключены, - они просто не увидят ваши творения в работе)


я могу сделать подобную защиту (есть опыт) - вынести часть вычислений на сервер (PHP), и в Excel выводить только результаты
(эта фраза не означает, что ко мне можно с этим обратиться - я такое могу сделать только для себя)

а вам советую просто не заморачиваться, - не так уж много взломщиков среди пользователей Excel
Страницы: 1
Читают тему
Наверх