Навигация по листу при открытом макросе.

Автор tserts, 14 декабря 2023, 00:37

0 Пользователи и 1 гость просматривают эту тему.

tserts

Как сделать так, чтобы при открытом макросе (создал окно, позволяющее быстро вносить назначение в лист интенсивной терапии) была возможность выбирать разные ячейки на листе. Создавал в экселе, там проблем не было. Прикрепляю файл. Наверное это очень просто решается.

tserts


sokol92

Ваш вопрос точно не является простым.  :)

В Excel Ваша форма UserForm3 открывается в немодальном режиме, поскольку имеет свойство ShowModal False. Это дает возможность менять текущую ячейку (и совершать иные действия) при открытой форме.

В Calc эта форма открывается в модальном режиме, что дает возможность занести данные в текущую ячейку, но не дает сменить ячейку, пока форма открыта. Можно написать сообщение об этой ошибке (игнорирование свойства ShowModal) разработчикам в "Багзиллу".

Можно предложить (в дополнение к существующему варианту) поменять последовательность действий в книге. Например, дважды щелкаем по ячейке столбца A, при этом вызывается UserForm3 в модальном режиме. Пользователь заносит значение в ячейку и форма автоматически закрывается. Эта технология будет работать и в Excel, и в Calc.
Владимир.

economist

Можно сэкономить тонны времени, если не использовать диалоги с макросами и программированием событий, а повторить все их кнопки/флажки прямо в ячейках/секции листа, скажем, вверху или внизу (принцип однооконного приложения). По этому пути пошли гиганты отрасли типа 1С. Не нужна модальность и диалоги, есть доступ ко всем ячейкам, не нужны макросы, кроме простейших, всю валидацию данных можно построить на штатных Данные-Проверка, Условном форматировании и Формулах (пусть юзер сам ее улучшает). Да, не так красиво, но проще и быстрее может получиться.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

tserts

Мог бы кто-нибудь поделится кодом для такой кнопки на листе. Которая бы позволила бы в любую ячейку вставлять заданный текст.

Если можно то и код для выпадающего списка сразу. У меня искренне не получается сделать. Calс постоянно ругается.

sokol92

Попробуйте то, о чем я писал в #2.
Для Excel всё должно остаться прежним.
Для Calc в начале дважды щелкаете по ячейке, в которую нужно занести значение. Далее в появившейся форме выбираете значение.
Владимир.