![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.07.2009
Сообщений: 27
|
![]()
есть userform с четыренмя полями:
договор дата договора контрагент сумма договора необходимо реализовать проверку корректности вводимых данных дата - дата договор и конрагент - строка сумма договора - число подскажите, пожалуйста как это реализвать вот мой код: Function proverka(tempstr As String) As Integer Dim temp As String proverka = 0 temp = tempstr If temp <> "" Then proverka = 1 Else MsgBox "Некорректный ввод данных!", vbExclamation, "Error" End If End Function Function proverka_dat(str As String) As Integer Dim temp As String proverka_dat = 0 temp = str If IsDate(temp) Then proverka_dat = 1 Else Select Case temp Case "" MsgBox "Необходимо ввести дату!", vbExclamation, "Error" Case Else MsgBox "Некорректная дата!", vbExclamation, "Error" End Select End If End Function Private Sub OK_Click() Dim n As Integer Dim dok As String Dim dat As String Dim kon As String Dim sum As String Dim doki As Integer Dim dati As Integer Dim koni As Integer Dim sumi As Integer n = Range("A1").CurrentRegion.Rows.Coun t met1: dok = txtDok.Value doki = proverka(dok) If doki = 1 Then Cells(n + 6, 3) = txtDok.Value Else GoTo met1 End If dat = txtDat.Value dati = proverka_dat(dat) If dati = 1 Then Cells(n + 7, 3) = txtDat.Value Else GoTo met1 End If kon = txtKon.Value koni = proverka(kon) If koni = 1 Then Cells(n + 8, 3) = txtKon.Value Else GoTo met1 End If sum = txtSum.Value sumi = proverka(sum) If sumi = 1 Then Cells(n + 9, 3) = txtSum.Value Else GoTo met1 End If position.Hide End Sub Помогите, очень надо!!!! Спасибо |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
А что конкретно не получается?
PS: Код можно немного сократить: Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.07.2009
Сообщений: 27
|
![]()
зацикливается и не дает исправить незаполненные или неправильно заполненные поля... что типа: 12,01,01 если через запятые, то выскакивает окошко: "некорректная дата", но не дает возможности сделать исправления, вот в этом проблема!! тоже самое относительно пустых полей, после вывода ошибки необходима возможность ее исправления! подскажите, как решить?
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 27.07.2009
Сообщений: 27
|
![]()
может быть надо писать для каждого поля в отдельном subе для окошечка? и туда же засовывать проверку? или можно как-то изменить логику в предлагаемом коде?
|
![]() |
![]() |
![]() |
#5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Будет файл с формой - будет и решение. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 27.07.2009
Сообщений: 27
|
![]()
вот, посмотрите, пожалуйста!
|
![]() |
![]() |
![]() |
#7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Попробуйте такой вариант:
Кнопка ОК будет недоступна, если в поля введены не все (или введены некорректные) значения. Вот весь код: Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 26.08.2009 в 17:02. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 27.07.2009
Сообщений: 27
|
![]()
Спасибо за помощь!!! Буду разбираться...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка уникальных значений в столбце | kostya.myit | Microsoft Office Excel | 14 | 04.11.2012 10:33 |
проверка вводимых значений не производится при удалении | Air_kplp | Microsoft Office Excel | 7 | 29.05.2009 09:01 |
проверка значений в ListBox | Arteom | Компоненты Delphi | 10 | 26.05.2008 12:32 |
Реестр вводимых документов | Sum | Microsoft Office Excel | 1 | 07.04.2008 18:28 |
Работа с текст. файлом, проверка значений в нем. | Vishez | Помощь студентам | 11 | 07.05.2007 21:59 |