Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2009, 12:22   #1
CockPuncher
Новичок
Джуниор
 
Регистрация: 02.09.2009
Сообщений: 2
Печаль Как избежать повторение одного и того же номера дважды

Добрый день, уважаемые!
У меня такая задачка интересная появилась:
В общем ведется регистрация документации организации в EXCEL, так вот этим документиком пользуется всего 2 человека, это секретарь приемной и тетенька с АХО, иногда(уже почаще))) возникают накладки в виде регистрации одного письма дважды.
Во избежание сей проблемы, захотелось придумать какую нибудь весч, чтобы когда в столбце "Исходящий номер" при повторении этого номера выскакивало окошко, мол "есть такой номер, проверьте документ" ну и т.д.
CTRL+F тетенек юзать не научишь, ибо пенсионерки...
поможите, люди добрые, пжалста))
CockPuncher вне форума Ответить с цитированием
Старый 02.09.2009, 13:11   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В модуль требуемого листа вставьте код:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Column <> 1 Then Exit Sub
    If Application.CountIf([A:A], Target) > 1 Then MsgBox "Такое значение уже присутствует"
End Sub
После этого, при попытке ввода в столбец "A" уже имеющегося значения, будет выведено соответствующее предупреждение.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.09.2009, 13:51   #3
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Да уж, с профи не сравниться, но все же:

Надо вставить в модуль:
Код:
Sub Search()
yes = 0
For i = 1 To Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A").Offset(-1, 0).Row
 If Cells(i, 2).Value = Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A").Value Then yes = 1
Next i
If yes > 0 Then
MsgBox "Письмо с таким номером уже зарегистрировано!"
Cells(Cells(Rows.Count, "A").End(xlUp).Row, "A").ClearContents
End If
End Sub
Надо вставить в модуль листа, где содержаться номера писем:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Long
r = Target.Row
If r > 1 And r < 10000 And Target.Column = 1 Then Search
End Sub
Maxx вне форума Ответить с цитированием
Старый 02.09.2009, 15:51   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

А почему нельзя сделать условное форматирование для столбца «Исходящий номер»? Если значение в ячейке повторится, то сделать ячейку красной. Или сообщение — это принципиально? Бабушки могут перепугаться.
А если уж выводить сообщение, то не в виде MsgBox, а в виде InputBox, с предложением ввести правильный номер
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 02.09.2009 в 15:57.
viter.alex вне форума Ответить с цитированием
Старый 03.09.2009, 02:34   #5
CockPuncher
Новичок
Джуниор
 
Регистрация: 02.09.2009
Сообщений: 2
По умолчанию

Багодарю за помощь!
Но есть одно НО, на простенькие числа этот код срабатывает, ну то есть целые числа, а вот к примеру 21-03/238 вот на это уже не работает...
CockPuncher вне форума Ответить с цитированием
Старый 03.09.2009, 04:45   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
к примеру 21-03/238 вот на это уже не работает...
Не верю. Значит есть какие-то различия в значениях (лидирующий пробел и т.п.).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 03.09.2009, 09:53   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Еще вариант, без макросов. Применено ко всему столбцу А.
Вложения
Тип файла: rar Проверка на дубли.rar (3.5 Кб, 26 просмотров)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить повторение чисел в столбце komar73 Microsoft Office Excel 17 27.12.2011 16:54
Как избежать сужения (уменьшение размера) пикселей изображения, при включенном свойстве Stretch? Лукманов Александр Мультимедиа в Delphi 8 26.10.2009 09:52
Как при постройке графика избежать диления на 0 Zerony Общие вопросы Delphi 9 12.01.2009 18:02
Найти номера(индексы) в матрице хотябы одной строки или хотя бы одного столбца не содержащих еденицы Сергей Попов Паскаль, Turbo Pascal, PascalABC.NET 1 28.11.2008 08:59
Как програмно дважды кликнуть в RichEdit? apromix Общие вопросы Delphi 10 23.05.2008 17:09