|
|
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. При выполнении кода нужно, выдать ему сообщение о том чтобы он указал "нужную". При использовании showModal = False пользователь может не только активировать ячейку, но и изменить что угодно на листе, в книге... Есть ли не слишком громоздкий способ, во время работы формы разрешить ему ТОЛЬКО активировать ячейки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 11:26:24 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
newnoober, используйте вместо формы Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 11:35:04 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
newnooberвыдать ему сообщение о том чтобы он указал "нужную". Это служба знакомств? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 11:40:31 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
Владимир Санычnewnooberвыдать ему сообщение о том чтобы он указал "нужную". Это служба знакомств?тогда уж агенство по подбору невест (однонаправленный процесс) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 11:43:42 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
qwrqwrnewnoober, используйте вместо формы Код: plaintext 1. Большое спасибо, qwrqwr. Формумом ошибся. Очень торопился ... промазал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 14:38:02 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. сим кодом хочу показывать InputBox пока не будет корректно задан Range. НО! GoTo срабатывает всего один раз. т.е. если в InputBox 2 раза нажать отмену, то после второго раза получаю ошибку '424'. т.е. On Error GoTo RyplayInput отрабатывает всего один раз. В чем моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 16:06:41 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
newnooberВ чем моя ошибка?в этом (сами же знаете): newnooberOn Error GoTo RyplayInput отрабатывает всего один раз. при переходе в обработчик ошибок обработчик сбрасывается (до выполнения Resume...) вообще мутить цикл из обработчика - это какой-то хардкор с извратом пополам делайте что-то типа: Код: plaintext 1. 2. 3. 4. Модератор: Тема перенесена из форума "Microsoft Access". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 16:19:37 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
ну вот и перенесли :) вариант выше нерабочий - писАл не проверяя вот так, как вариант, можно перехватывать нажатие кансель: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 16:41:00 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
qwrqwrну вот и перенесли :) вариант выше нерабочий - писАл не проверяя вот так, как вариант, можно перехватывать нажатие кансель: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Теперь всё сходится. qwrqwr, много больших спасиб. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 17:22:17 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
newnoober, А чем RefEdit ActiveX control не устроил, если не секрет? Ведь и выкручиваться не надо и модальность отменять! См. пример. KL [MVP - Microsoft Office Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 21:30:17 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
KL (XL)newnoober, А чем RefEdit ActiveX control не устроил, если не секрет? 2KL я не newnoober, но спрошу :) пример посмотрел - т.к. до сих пор RefEdit-ом не пользовался, но много слышал - от упоминаний о его глючности до сообщений типа этого (из недавних - первое, что нашел) на первый взгляд - что отметил сам для себя: минусы Application.InputBox: 1. не умеет при выборе диапазона сворачиваться до маленького окошечка как RefEdit и стандартные диалоги Экселя. 2. явная недоработка MS обработки нажатия кансел - реально впервые столкнулся с ситуацией, которую я смог разрулить только через использование On Error Resume Next + Err.Number - обычно это один возможный из неск. вариантов. 1-можно пережить; 2-придется принять и рассматривать как фичу. плюсы Application.InputBox: 1. ИМХО безглючнее RefEdit-а, судя по тем сообщениям, что я видел. 2. вызывается одной строчкой кода (ладно, с обработкой нажатия Cancel - тремя :), что имеет особое значение при написании "простых" процедур, где надо организовать диалог с пользователем без необходимости городить UserForm для этого. 3. возвращает сразу Range а не адрес в тексте (100% надуманный плюс :) тж. у RefEdit как положено куча событий - затрудняюсь их отнести к плюс/минус, но не могу придумать зачем они могут понадобиться :) "по совокупности" - мой выбор за Application.InputBox далее, собственно, вопрос - не могли бы Вы в 2 словах высказать и аргументировать свое предпочтение при выборе одного из этих 2 вариантов средств для выбора диапазона пользователем Ваше мнение было бы для меня очень интересным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2009, 00:30:04 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
2qwrqwr Ну лично у меня нет универсального предпочтения тому или другому. Сразу скажу, про глючность RefEdit слышу первый раз - у меня прецендентов не было за годы участия в различных форумах по Excel (правда я всегда работаю в англ. локали). Поиск по RefEdit в этом форуме дал 11 тем из них я обнаружил проблему только в указанном Вами. У каждого из этих способов свои за и против в зависимости от ситуации. В данном случае, исходя из моего понимания задачи изложенной автором, преимущества RefEdit были такие: - не требует дополнительного окна, а встраивается в форму - при необходимости сворачивает форму до ячейки RefEdit - не требует слишком много кода для отлова ошибок, в т.ч. при нажатии Cancel Пожалуй соглашусь с тем, что возврат текста вместо объекта - это слегка через з*цу, но это не столь большой минус, чтобы закрыть глаза на остальные плюсы. Поскольку тезис о "глючности" для меня не очевиден, то выбор мне представляется вполне легким. Но, поскольку у каждого свои предпочтения и опыт, я и спросил о том, чем не угодил RefEdit. Привет, KL [MVP - Microsoft Office Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2009, 01:35:00 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
KL (XL), спасибо за ответ По поводу глючности - Google по "refedit bug" выдает ссылок довольно-таки приличное кол-во :) Согласен, когда форма уже есть - вставка еще одного визуального компонента на нее вполне естественна. По поводу много кода для отлова ошибок - не согласен. Просто ТС почему-то захотел опрашивать юзера "до упора" в цикле - я показал как это следует делать. Здесь вопрос не написания кода, а организации пользовательского интерфейса; лично я, например, не считаю нужным при нажатии юзером Отмена - переспрашивать в его цикле ИМХО нормально один раз завернуть возврат диапазона в процедуру: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2009, 09:56:34 |
|
||
|
как запретить изменения листа при showModal = False
|
|||
|---|---|---|---|
|
#18+
qwrqwrKL (XL), спасибо за ответ По поводу глючности - Google по "refedit bug" выдает ссылок довольно-таки приличное кол-во :)qwrqwr, если делать поиск в Google вообще, да еще со столь распространенным словом как "bug", то результаты будут искаженными - не гарантирована привязка к Excel, не гарантирована связь между словами "refedit" и "bug", возможно множественные ссылки на ссылки и т.д. Вот пример из, насколько я понимаю, самой массовой в мире группы по VBA программированию в Excel: http://tinyurl.com/l2klkm 1) за все время - 58 совпадений 2) 23 - повторы найденных статей, т.ч. реально их 35 2) 26 постов относятся к 98-2003 г. 3) почти в половине речь о багах не связанных с refedit или не багах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2009, 12:13:15 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36046589&tid=2179373]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 388ms |

| 0 / 0 |
