Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Предупреждение о наличии дубликата в таблице
 
Приветствую, друзья. Подскажите, как  при вводе значения в таблицу средствами VBA организовать  проверку на его наличие в данных которые уже содержаться в таблице.
Например:
При вводе два раза одного и того же имени в одну дату- вывести предупреждение в MsgBox, что данное значение уже содержится в таблице в эту дату.
Изменено: Dyroff - 15 Мар 2018 16:01:16
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff, зачем макрос, если можно использовать "Проверка данных"?
 
StepanWolkoff, Спасибо за вариант)
Макрос потому, что проверку данных обходит вставка значения и если, например, записать сначала имя, а потом дату- проверка не увидит нарушений
Изменено: Dyroff - 15 Мар 2018 16:20:21
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff, а енсли сделать проверку на наличие даты?!
 
a.i.mershik, Ну, как вариант.
Но мне просто хотелось бы знать, как подобная конструкция будет выглядеть на VBA.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Dyroff, вот тут обсуждалось что то подоное, правда тут не условия просто по одному значению https://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=10749
 
Dyroff, ну тут в любом случае может быть еще несколько подводных камней, например: ввести новое имя, а затем в диапазоне выше исправить старое на такое же, значит проверку надо делать каждый раз "бегая" по всей таблице? Ну и вообще, как показывает практика пользователи очень изобретательны в создании косяков))
Поэтому нужны четкие критерии как будет вводиться и какие будут ограничения.
 
a.i.mershik, Да, смотрел эту тему  перед созданием своей. Но моих знаний не хватает для добавления условия проверки по второму столбцу.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Ну как бы о чем я и написал, в той теме в сообщении 17
Цитата
В целом все работает, но если вводить значение в ячейку не ниже, а выше, то скрипт пропускает и позволяет добавить дублирующее значение.
 
Цитата
StepanWolkoff написал:
как будет вводиться и какие будут ограничения
Вводится сначала дата - потом значение. В основном это делается методом копирования из другого справочника и вставки.
Планировал повесить эту проверку на событие изменения ячейки в столбце B.
Чтобы пользователь, введя два раза одинаковые значения, просто узнал об этом. Так как в реале таблице большая, по невнимательности сейчас пользователь может внести несколько одинаковых строк
Изменено: Dyroff - 15 Мар 2018 16:36:39
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Цитата
StepanWolkoff написал:
то скрипт пропускает и позволяет добавить дублирующее значение.
Такая ситуация исключена.
У пользователя нет задачи, обмануть  проверку. Просто таблицу заполняют разные люди, и второй пользователь может не заметить, что кто-то перед ним уже внес такое же значение (на 100 строк выше, например)
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
См. вариант.
P.S. выкладывая файла на форум, проверяйте его на наличие связей с другими книгами.
 
Юрий М, спасибо Вам большое за помощь и за совет. Обязательно учту.
Работает отлично!
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Цитата
Dyroff написал:
Работает отлично!
Не просто отлично, ОООЧЕНЬ отлично
Проверил на 500 000 записей. Даже не моргнул, выдал результат
Юрий М большое Вам спасибо

Была у меня подобная задача - выделить все дубликаты в столбце. Так я отсортировал массив и пробежал по нему один раз. Единственный тормоз - это перенос данных в массив
 
Dyroff, я писал свои UDF на основе вот такого супербыстрого метода (вариант с Like)
Изменено: Jack Famous - 16 Мар 2018 15:12:46
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1
Читают тему (гостей: 1)