Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
Короче, нужно, например, чтоб в ячейки столбца A пользователь мог ввести только целочисленные значения, в ячейки столбца B только действительные положительные и т.п. Для этого я использую стандартную тройку возможностей Excel "Форматы ячеек"+"Данные\Проверка вводимых значений"+"Защита листов". И это прекрасно работает, когда пользователь заполняет ячейки через клавиатуру. Но, все идет на смарку, когда пользователь заполняет ячейку вставкой из буфера, при этом в целочисленную ячейку он запросто может ввести строковое значение и вообще просто похерить формат ячейки. МОЖЕТ ЭТО ОЧЕРЕДНАЯ ГЛУПАЯ НЕДОДЕЛКА EXCEL? Просто когда устанавливаешь защиту листа, форматы ячеек Excel-ем блокируются, но они элементарно изменяются копированием через буфер. Вопрос такой: как сделать так, чтоб пользователь мог ввести в ячеку только то значение, которое разрешается (целочисленое, положительное, текстовое, из списка)? У кого какие идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 20:39 |
|
||
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
И действительно !!! Не помню, скрижалей, в которых это записано и сказано - как бороться… Как будто работает такой вариант: 1) Присвоить для клетки с установленной проверкой значения имя уровня рабочей книги - PROBLEM 2) Завести еще одну клетку (например на скрытом листе) с установленной проверкой значения ТОЧНО ТАКОЙ ЖЕ, как и для целевой отображаемой клетки. Присвоить ей тоже именованный диапазон - TESTRANGE 3) В модуле класса листа ввести примерно такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. ЗЫ1 Может кто придумает что получше… (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 01:49 |
|
||
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо за хороший ответ. НО! У этого варианта есть серьезные минусы: 1) Этот код рекурсивен. Т.е. Изменение ячейки внутри Worksheet_Change вызовет последующий запуск Worksheet_Change и так до бесконечности. 2) Требует наличия дубликатов ячеек и при таком количестве разных ячеек, которые используются в моем проекте, я на 80% запутаюсь при синхронизации валидаторов. 3) Такой подход требует "ручного" (полного прописывания в макросе) исправления всех параметров ячейки включая цвет, границы, параметры защиты, примечания из TESTRANGE т.п. Не мудрено что тут могут возникнуть новые ошибки при выполнении. 4) Замедляет и без того нагруженные в моем проекте, обработчики событий. 5) Не совместим с "Условным форматированием", т.е. если УФ включить, не будет работать эта проверка. 6) Эту проверку легко можно обойти, если не включать макросы (хотя это для меня не существенно), сохранить и заново запустить но с включенными макросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 13:36 |
|
||
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо за хороший ответ. НО! У этого варианта есть серьезные минусы: 1) Этот код рекурсивен. Т.е. Изменение ячейки внутри Worksheet_Change вызовет последующий запуск Worksheet_Change и так до бесконечности. 2) Требует наличия дубликатов ячеек и при таком количестве разных ячеек, которые используются в моем проекте, я на 80% запутаюсь при синхронизации валидаторов. 3) Такой подход требует "ручного" (полного прописывания в макросе) исправления всех параметров ячейки включая цвет, границы, параметры защиты, примечания из TESTRANGE т.п. Не мудрено что тут могут возникнуть новые ошибки при выполнении. 4) Замедляет и без того нагруженные в моем проекте, обработчики событий. 5) Не совместим с "Условным форматированием", т.е. если УФ включить, не будет работать эта проверка. 6) Эту проверку легко можно обойти, если не включать макросы (хотя это для меня не существенно), сохранить и заново запустить но с включенными макросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 13:38 |
|
||
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
IDjСпасибо за хороший ответ. НО! У этого варианта есть серьезные минусы: 1) Этот код рекурсивен. Т.е. Изменение ячейки внутри Worksheet_Change вызовет последующий запуск Worksheet_Change и так до бесконечности. Это Вам спасибо - за хороший вопрос - размял неплохо. Для меня его информативность достаточна для получения удовольствия. про бесконечность - это слишком. Бесконечности здесь нет - все кончается "вторым вызовом". Все остальные замечания, наверно, справедливы. Что-то не проверял ( "роль условного форматирования"), что-то частично может быть компенсировано "планированием" ( 2) и 3) ). Клавиатурную вставку из буфера (Ctrl-v,Shift-Insert) легко отменить - там показано в комментариях как. С мышью, возможно умнее обходиться не этим кодом, а манипуляциями с с запретом/разрешением элементов меню/контекстных меню/панелей/тулбаров Тот код, что был показан - сообразил за час. В манипуляции с элементами управления не стал ввязываться - за час не сваял бы точно. зато другой теперь точно сделает лучше. И, может быть, даже покажет Итого(результат). :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 14:20 |
|
||
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
Victosha про бесконечность - это слишком. Бесконечности здесь нет - все кончается "вторым вызовом". Действительно. Как то не подумал. Victosha Клавиатурную вставку из буфера (Ctrl-v,Shift-Insert) легко отменить - там показано в комментариях как. С мышью, возможно умнее обходиться не этим кодом, а манипуляциями с с запретом/разрешением элементов меню/контекстных меню/панелей/тулбаров Тоже выход. Но он относится больше к крайним мерам. Просто тогда я должен буду лишить пользователя возможности стандартного копирования/вставки и предложить свои "кнопки" и соответствено дополнительно повесить на них обработчики проверки значений по ячейкам. Т.о. преимущества быстрой разработки на Excel постепенно сходят на нет. В результате я все больше прихожу к тому, что проще было сделать свое приложение не на Excel, а например на Delphi+Access. Неужели на такую стандартную проблему в Excel не предусмотрено стандартных решений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 14:47 |
|
||
|
Защита защищенных ячеек в Excel
|
|||
|---|---|---|---|
|
#18+
Вообще-то, в хелпе написано, что проверки не выполняются при вставке из буфера или если в ячейку помещается результат работы макроса. Посмотрите этот вопрос на схожую тему http://www.sql.ru/forum/actualthread.aspx?tid=184411 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:25 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=360&tid=2186057]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 191ms |

| 0 / 0 |
