Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обход валидации ячейки 
:(
    Опции темы
m9yt
Дата 20.9.2013, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Добрый день.
На ячейку повешена проверка действительных чисел. Как можно опередить событие валидации? Т.е. при, допустим, нажатии "Enter" у меня вначале редактируется введенный текст (в зависимости от региональных настроек меняется "." на "," или наоборот), а потом уже вызывается валидация. (Замену символов реализовал).

Worksheet_Change не подходит, т.к. событие валидации обрабатывается раньше.

Также интересует, как запретить вставку в ячейку заранее некорректных данных? Т.е. если в ней есть проверка на дату, и откуда-то вставить строку, то проверка не сработает.

Это сообщение отредактировал(а) m9yt - 20.9.2013, 08:40
PM MAIL   Вверх
Akina
Дата 20.9.2013, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Неправильный инструмент или подход к решению задачи = геморрой.

Сделай ввод только через формы ввода. Пусть вводят что хотят и как хотят. А по нажатию кнопки добавления - выполняем все проверки, и при ошибках тычем носом. Плюс сохранение некорректированного сырца.




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
m9yt
Дата 20.9.2013, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(Akina @ 20.9.2013,  08:55)
Неправильный инструмент или подход к решению задачи = геморрой.

Сделай ввод только через формы ввода. Пусть вводят что хотят и как хотят. А по нажатию кнопки добавления - выполняем все проверки, и при ошибках тычем носом. Плюс сохранение некорректированного сырца.

Знаю, что геморрой. Но заказчик так просит. А делать форму ввода ему не надо. Для ввода итак есть ячейка.

Просто если это невозможно, то можно об этом сказать, и вопрос будет закрыт.

Это сообщение отредактировал(а) m9yt - 20.9.2013, 09:17
PM MAIL   Вверх
Akina
Дата 20.9.2013, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Хорошо. Другой вариант - по всем мыслимым событиям (а лучше  по таймеру) стартуем процедуру валидации, если она в текущий момент неактивна. Если строка не прошла валидации - помечаем её (скажем, иконкой с большой красной Х в спецово выделенной на то колонке).
Само собой в этом случае она должа быть реально компактной и быстрой.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
m9yt
Дата 20.9.2013, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(Akina @ 20.9.2013,  09:21)
Хорошо. Другой вариант - по всем мыслимым событиям (а лучше  по таймеру) стартуем процедуру валидации, если она в текущий момент неактивна. Если строка не прошла валидации - помечаем её (скажем, иконкой с большой красной Х в спецово выделенной на то колонке).
Само собой в этом случае она должа быть реально компактной и быстрой.

Ну вы предложили что-то уж очень навороченное. Мне бы просто перехватить процедурку валидации (стандартную, экселевскую, которая срабатывает, когда на ячейку вешается проверка из вкладки "данные")
PM MAIL   Вверх
Akina
Дата 20.9.2013, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Validation не порождает эвента, который можно обработать программно.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
m9yt
Дата 20.9.2013, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(Akina @ 20.9.2013,  10:48)
Validation не порождает эвента, который можно обработать программно.

Получается, что никак изменить текст в ячейке после нажатия "Enter", но до Validation, не получится?

Это сообщение отредактировал(а) m9yt - 20.9.2013, 11:08
PM MAIL   Вверх
FINANSIST
Дата 2.10.2013, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



простейший путь - перенос всех проверок валидации на событие change и отказ от валидации


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.