Код проверки ввода повтора данных срабатывающий по событию

Программирование на Visual Basic for Applications
unituz
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 04.02.2009 (Ср) 8:32

Код проверки ввода повтора данных срабатывающий по событию

Сообщение unituz » 06.02.2009 (Пт) 7:36

Здравствуйте

Возможно ли написать код который бы проверял на "лету" случайный повтор ввода данных? Допустим есть файл ексель где в первом столбце вбиваются табельные номера работников, так как количество работающих большое порядка двух тысяч есть вероятность ввода повтора табельного номера, а два одинаковых таб номера это серьезная ошибка. Можно ли написать такой макрос который бы срабатывал по событию(Worksheet_Change) ? Нужно что бы при повторе выскакивал msgbox с предупреждением
Есть у кого нибудь какие либо сообраджения? заранее благодарен

С уважением Дамир
Последний раз редактировалось unituz 06.02.2009 (Пт) 12:54, всего редактировалось 1 раз.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Код проверки ввода повтора данных срабатывающий по событию

Сообщение Денис » 06.02.2009 (Пт) 8:11

То, что ты описываешь, называется "индексация", к сожалению, в этом вопросе я не слишком разбираюсь, потому, подождем ответов более знающих. Пока просто задаю направление поиска.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 23.10.2008 (Чт) 16:15

Re: Код проверки ввода повтора данных срабатывающий по событию

Сообщение GDK » 06.02.2009 (Пт) 12:42

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

Lilo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 30.03.2009 (Пн) 12:44

Re: Код проверки ввода повтора данных срабатывающий по событию

Сообщение Lilo » 30.03.2009 (Пн) 13:04

может попробывать вводить через InPutBox и обрабатывать каждое нажатие клавиши?
Так должно работать быстрей, чем поиск

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Re: Код проверки ввода повтора данных срабатывающий по событию

Сообщение RayShade » 30.03.2009 (Пн) 13:45

Нельзя так делать. Надо обрабатывать не все чейнжи, а только скажем когда человек закончил ввод в клетку. Иначе, при большом объеме данных, это будет попадалово на проверках.
I don't understand. Sorry.

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: Код проверки ввода повтора данных срабатывающий по событию

Сообщение HandKot » 31.03.2009 (Вт) 8:03

п если сделать так:

Выделите диапазон, в котором нужно делать проверку
Меню "Данные - Проверка"

Далее:
-Выбрать тип Другой в окне Тип данных.
-В поле Формула ввестиформулу для расчета логического значения (ИСТИНА для корректных данных или ЛОЖЬ для некорректных данных).
Формула для запрета ввода в столбец А одинаковых значений
Код: Выделить всё
=ЕСЛИ(СЧЁТЕСЛИ(A:A;A1) = 1;ИСТИНА;ЛОЖЬ)


правда скорость на больших объемах не измерял, но можно потестировать
I Have Nine Lives You Have One Only
THINK!

Lilo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 30.03.2009 (Пн) 12:44

Re: Код проверки ввода повтора данных срабатывающий по событию

Сообщение Lilo » 03.04.2009 (Пт) 13:10

RayShade писал(а):Нельзя так делать. Надо обрабатывать не все чейнжи, а только скажем когда человек закончил ввод в клетку. Иначе, при большом объеме данных, это будет попадалово на проверках.

так имелось с виду же не полная обработка, а посимвольная.
даже если использвать буквы+цифры, то для строки из 10 символов понадобиться максимум 10*(33+10)=430 проверок, что заведомо меньше заявленных 2000 значений.
правда это имеет смысл, если все номера одной разрядности.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList