Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10

Проверка данных вводимых пользователем

25.05.2015, 20:41. Показов 8566. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, существует такой код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Ввод()
Worksheets("таблица").Select 'выбор листа "таблица"
Worksheets("таблица").Range("A2:F11").ClearContents ' Очистка таблицы
'цикл со счетчиком осуществляет запись вводимого значения в соответствующую ячейку
'до тех пор, пока мы соглашаемся вводить данные
For i = 1 To 10
Worksheets("таблица").Cells(1 + i, 1).Value = i
Worksheets("таблица").Cells(1 + i, 2).Value = InputBox("Наименование товара", "Ввод данных")
Worksheets("таблица").Cells(1 + i, 3).Value = Val(InputBox("Затраты на производство, руб.", "Ввод данных"))
Worksheets("таблица").Cells(1 + i, 4).Value = Val(InputBox("Стоимость продажи, руб.", "Ввод данных"))
x = MsgBox("Продолжать ввод данных ?", vbYesNo, "Вопрос пользователю") 'Вопрос о продолжении ввода данных
If x = 7 Then Exit Sub 'Выход из цикла, в случае когда, пользователь нажимает кнопку "нет"
Next i
MsgBox "Ввод данных закончен", vbOKOnly, "Ввод данных"
End Sub
Думаю достаточно понятно что он делает.. Так вот, проблема в том, что когда в 3 и 4 столбец, при вводе данных, пишешь что-то кроме цифр, появляются 0.. Так вот собственно и вопрос, как сделать проверку на то, что вводит пользователь ? Чтобы тогда когда пользователь туда куда нужно вводить цифры, вводит буквы, ему выскакивала ошибка, и программа заставляла ввести данные правильно ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2015, 20:41
Ответы с готовыми решениями:

Проверка вводимых значений
Подскажите, как можно сделать чтобы в поле TextBox ничего кроме даты нельзя было ввести?

Проверка вводимых в ячейку значений (список)
Excel 2000 Цель: создание разных списков возможных значений, вводимых в одну и туже ячейку, в зависимости от параметра (например,...

Ограничение на тип вводимых данных в Excel
Пожалуйста! В определенную область на листе пользователь вводит данные. Нужно, чтобы вводились только числовые даные, а в остальных случаях...

3
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
25.05.2015, 21:12
Лучший ответ Сообщение было отмечено Owens как решение

Решение

Заставить вводить числа, в т.ч. и 0, можно, например, так :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Test()
 
For i = 2 To 11
    Worksheets("Таблица").Cells(i, 1).Value = i - 1
    Worksheets("Таблица").Cells(i, 2).Value = InputBox("Наименование товара", "Ввод данных")
    Worksheets("Таблица").Cells(i, 3).Value = GetNumber("Затраты на производство, руб.", "Ввод данных")
    Worksheets("Таблица").Cells(i, 4).Value = GetNumber("Стоимость продажи, руб.", "Ввод данных")
Next
    
End Sub
 
Private Function GetNumber#(Prompt$, Title$)
    Do
         temp = Replace(InputBox(Prompt, Title), ".", ",")
    Loop Until IsNumeric(temp)
    GetNumber = CDbl(temp)
End Function
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
25.05.2015, 22:05  [ТС]
Спасибо, все работает
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
25.05.2015, 22:15
P.S. В Excel есть свой InputBox, который позволяет "обхамить" пользователя, который введёт некорректные данные. Правда, юзер может использовать кнопку [X] (Закрыть) или Отмена, так что, в идеале - всё равно придётся анализировать результат.

Visual Basic
1
Range("A1") = Application.InputBox("Затраты на производство, руб.", "Ввод данных", Type:=1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2015, 22:15
Помогаю со студенческими работами здесь

Помещение всех вводимых данных в ячейку
1. Есть лист с структурой по строках (3 уровня). Определенные ячейки защищены. Необходимо обработать какое-то событие на выбор уровня...

Передача вводимых данных из формы в таблицу Excel
Здравствуйте, не могли бы вы мне помочь. Как реализовать передачу ввода данных из формы в таблицу Excel. (Чтобы человек вводил 1 раз в...

Создание проверки вводимых значений через vba (тип данных список)
Добрый день! Пытаюсь написать макрос, который на основе именовонного диапазона создает "Проверку вводимых значений" в ячейке...

Проверка вводимых пользователем данных
Здравствуйте господа! Помогите новичку! Такая сложность. Нужно проверять что вводит пользователь в textbox. Ниже код, запрещающий вводить...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru