Здравствуйте! Помогите разобраться! Составил программку и защитил лист кроме пользовательской группы ячеек. Все прекрасно работает! Но есть одна проблема: если пользователь захочет вырезать данные из одной незащищенной ячейки и вставит их в другую то все связи нарушатся и программа перестанет правильно работать. Вопрос можно ли как то защитить группу ячеек от вырезания или чтобы при вырезании любой ячейки из заданного диапазона , к примеру, выскакивало сообщение о недопустимости данного действия и пользователь смог вернуть операцию.
да файл то здесь ни при чем... но так никто и не смог решить вопрос. Посоветовали заблокировать ПКМ. Но все равно же это не решение - опция Вырезать доступна через меню Правка. Да и в принципе запрет на копирование мне совсем не нужен. Копирование нужно оставить! Только запрет на вырезание. То есть вырезал ячейку а на это событие программа среагировала и послала сообщение "Ошибочка!"
да просто Delete можно так как при этом не нарушается выполнение программы. А так к вопросу о большом файле, то это сокращенная версия программы. Там для уменьшения веса файла я удалил внутри еще несколько листов Идея в том что при вырезании ячейки и вставке ее в другое место нарушается последовательность проигрывания нот понимаете? Программа переводит *.txt в звук *.mid вот в чем фишка. А если вместо ноты До будет играть Ре то это не порядок
По поводу файла: я думаю, что в данном случае файл вообще не нужен. По поводу вырезать/удалить: объясните в чём разница? Ведь в обоих случаях ячейка останется пустой.
При нажатии на Del просто происходит очистка ячейки и никакая нота не будет играть (причем именно через удаление так и реализована очистка значений листа), а при вырезании и вставке ячейки в другое место нотного листа мы получим другую мелодию... и еще при этом на месте вырезанной ячейки не будет раскрывающегося списка нот... Есть определенная запрограммированная последовательность нот. И если последовательность нарушить то нарушается и целостность всей программы и на выход идет файл с ошибкой!
да конечно Хотя тоже немножко не то. Предположим пользователь захочет скопировать верхнюю строчку и вставить во вторую - по идее программа скушает. А так придется ручками набирать...
То есть операция Копирование - Вставка есть good а вот Вырезание - Вставка, это конец программе
Вот и ломаю голову весь день...
Ничего лучшего кроме дублирования листа (резервного так сказать) пока не придумал
Что "конечно" - нужен запрет на вставку? По логике получается так. Если вырезали или даже просто скопировали, то вставив в запрещённый диапазон мы ломаем порядок нот. Если действительно нужен запрет на вставку, то подобные вопросы уже обсуждались. В поиске спросите: запретить вставку
Идея в том что при копировании вставлять смогут только в разрешенный диапазон так как остальные ячейки блокированы... А вот при вырезании то об этом я уже говорил... То есть в операции копирования нет ничего страшного более того предполагалось что для экономии времени пользователи так и будут делать чтобы заново не набирать повторяющиеся участки мелодии!
да копирование-вставка есть очень good, так как все разрешенные ячейки идентичны. А Delete всего лишь очищает ячейку от старой инфы. Это так и было задумано!
Например я набрал "Са Ре Га --" скопировал и вставил это в другую строчку и сэкономил кучу времени! а если я вырезал "Са Ре Га --" и вставил в другое место - то убил программу... :!:
Теперь я захотел набрать другую мелодию и для очистки тех же самых "Са Ре Га --" я воспользовался Delete И это есть очень даже Good!
Большущее спасибо! Оказывается все так просто! Вот что значит опыт!!!
Сразу видно кто Мастер
Все заработало! Пункт Вставки после Вырезки не активен!!!
Никто теперь не сможет вставить вырезанные данные и таким образом нарушить ход выполнения программы! При этом копирование чудесным образом продолжает работать!
Я счастлив! Программа закончена!
Аффтору ZVI большой респект за быстрый и очень грамотный ответ!!!
Vrajadas пишет: так никто и не смог решить вопрос. Посоветовали заблокировать ПКМ
Если бы Вы внимательно читали что Вам пишут, то обратили бы внимание на то что я посоветовал отключить не только ПКМ, но и Ctrl+X. Это по-Вашему не решение?