|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.04.2009, 14:07 | #1 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 13
|
Ввод десятичных дробей в поля textbox формы
Здравствуйте, дорогие Коллеги,
нужен Ваш совет... Требуется добавлять 2 знака после запятой для всех целых чисел, вводимых в textbox (или же добавлять лишний ноль для дробных чисел, преобразуя их в ЛЮБОМ случае в "сотые"). Ограничил набор вводимых символов в textbox только числами и запятой (событие Change), но не знаю, как преобразовывать вводимые данные, если ленивый пользователь ввел только целое число С помощью функции Round реализовать желаемое не смог... Заранее спасибо за помощь, с уважением, Николай |
18.04.2009, 18:11 | #2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Функция Format. Если нужно до сотых, то подойдет параметр этой функции Currency
Лучше день потерять — потом за пять минут долететь!©
|
19.04.2009, 01:00 | #3 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 13
|
Спасибо за ответ. Одно "но" - я, к сожалению, не очень пока опытен в VB/VBA. Поэтому мои методы реализации вызывают ошибку "Type mismatch".
Код:
С уважением, Николай |
19.04.2009, 03:36 | #4 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Пока рубль не деноминирован, дробная часть вводимой цены чаще всего нулевая, и заставлять пользователя каждый раз вводить эти пустопорожние копейки (когда их нет), думаю, не гуманно. Ну а если надо — пусть вводит. К сожалению, с обработкой ввода в поля форм давно не сталкивался, и вот написал две «демонстрашки» с функцией Format. Они запускаются по альт-R и альт-шифт-R соответственно.
Подробности о функциях смотрите по F1 (в Excel, возможно, Ctrl-F1), установив курсор на имя функции в редакторе VBA. Код:
Полтора часа мучил Word, но продумать все капризы «вводящего» юзера не получилось.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 20.04.2009 в 02:36. Причина: добавление кода формы для ввода. |
19.04.2009, 05:11 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Данный код позволяет вводить в поле только цифры и одну запятую, причём после запятой допускается ввод не более 2 цифр.
При нажатии Enter введённое число преобразуется к нужному формату. Код:
|
20.04.2009, 02:16 | #6 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Примерный образ того, что станет формой ввода цен
Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 20.04.2009 в 05:00. Причина: прибамбасы на форме. |
21.04.2009, 02:25 | #7 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Уточнение проекта формы ввода цен
Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 26.04.2009 в 04:51. |
22.04.2009, 04:44 | #8 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Печать в Word колонки цен с минимумом опечаток
Самое-то главное чуть не забыл: применение на практике! Прилагаю.
Это чисто ученический пример — моя первая* рабочая ВБА-форма! Код «раздулся» вдвое, но по меркам Windows он не так уж и велик. Код:
________________ * столь многокнопочная
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 26.04.2009 в 04:51. |
23.04.2009, 04:18 | #9 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Проверка магазинных чеков
Кстати, очень удобно вышеприведённую форму использовать для копирования цен (когда их штук 10—20) с магазинного чека.
Затем достаточно введённое выделить — нажать альт-S — и сверить сумму. Поменял язык в..! Суть в том, что форматы с именем ("standard", "currency" etc.) преобразуют строку в зависимости от настройки числовых форматов в Панели управления Windows (раздел Язык и региональные стандарты).
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 23.04.2009 в 17:02. |
26.04.2009, 04:55 | #10 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
«Черновики» снёс, а вот более-менее устойчивый вариант (по альт-шифт-S).
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 26.04.2009 в 05:00. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ВЫчисление дробей по модулю целого числа | Камикадзе | Помощь студентам | 0 | 18.04.2009 09:29 |
Как переменной присвоить данные из текстового поля формы? | kitten2 | Microsoft Office Excel | 2 | 08.04.2009 05:43 |
Ввод данных в поля на страничке | Port 111 | Работа с сетью в Delphi | 7 | 12.01.2009 20:34 |
Перевод десятичных чисел в тип Double | Kuzya59 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 04.12.2008 15:41 |
Вывод целых и десятичных чисел | Maycal | Общие вопросы C/C++ | 2 | 24.10.2007 12:34 |