![]() |
|
Модераторы: mihanik |
![]()
|
|
| m9yt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 27.2.2010 Репутация: нет Всего: нет |
Добрый день.
На ячейку повешена проверка действительных чисел. Как можно опередить событие валидации? Т.е. при, допустим, нажатии "Enter" у меня вначале редактируется введенный текст (в зависимости от региональных настроек меняется "." на "," или наоборот), а потом уже вызывается валидация. (Замену символов реализовал). Worksheet_Change не подходит, т.к. событие валидации обрабатывается раньше. Также интересует, как запретить вставку в ячейку заранее некорректных данных? Т.е. если в ней есть проверка на дату, и откуда-то вставить строку, то проверка не сработает. Это сообщение отредактировал(а) m9yt - 20.9.2013, 08:40 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Неправильный инструмент или подход к решению задачи = геморрой.
Сделай ввод только через формы ввода. Пусть вводят что хотят и как хотят. А по нажатию кнопки добавления - выполняем все проверки, и при ошибках тычем носом. Плюс сохранение некорректированного сырца. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| m9yt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 27.2.2010 Репутация: нет Всего: нет |
Знаю, что геморрой. Но заказчик так просит. А делать форму ввода ему не надо. Для ввода итак есть ячейка. Просто если это невозможно, то можно об этом сказать, и вопрос будет закрыт. Это сообщение отредактировал(а) m9yt - 20.9.2013, 09:17 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Хорошо. Другой вариант - по всем мыслимым событиям (а лучше по таймеру) стартуем процедуру валидации, если она в текущий момент неактивна. Если строка не прошла валидации - помечаем её (скажем, иконкой с большой красной Х в спецово выделенной на то колонке).
Само собой в этом случае она должа быть реально компактной и быстрой. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| m9yt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 27.2.2010 Репутация: нет Всего: нет |
Ну вы предложили что-то уж очень навороченное. Мне бы просто перехватить процедурку валидации (стандартную, экселевскую, которая срабатывает, когда на ячейку вешается проверка из вкладки "данные") |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Validation не порождает эвента, который можно обработать программно.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| m9yt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 27.2.2010 Репутация: нет Всего: нет |
Получается, что никак изменить текст в ячейке после нажатия "Enter", но до Validation, не получится? Это сообщение отредактировал(а) m9yt - 20.9.2013, 11:08 |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
простейший путь - перенос всех проверок валидации на событие change и отказ от валидации
-------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |