Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/KeyAscii и число с плавающей точкой - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » KeyAscii и число с плавающей точкой (Макросы/Sub)
KeyAscii и число с плавающей точкой
Serg73 Дата: Вторник, 24.04.2018, 09:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Добрый день,
Есть одна загвоздка при вводе числа в tbox с запятой выдает ошибку,помогите понять и исправить

Есть еще один вопрос:
Вся эта программа (выложенная как пример) стоит в более массивном коде и там уже при вводе Tbox воспринимаются только числа однозначные числа
Т.е. если я ввожу 5, Tbox выдает 15, но если ввести 55, он все равно выдает 15, а должен 65
К сообщению приложен файл: 3979980.xlsm (16.5 Kb)
 
Ответить
СообщениеДобрый день,
Есть одна загвоздка при вводе числа в tbox с запятой выдает ошибку,помогите понять и исправить

Есть еще один вопрос:
Вся эта программа (выложенная как пример) стоит в более массивном коде и там уже при вводе Tbox воспринимаются только числа однозначные числа
Т.е. если я ввожу 5, Tbox выдает 15, но если ввести 55, он все равно выдает 15, а должен 65

Автор - Serg73
Дата добавления - 24.04.2018 в 09:53
Roman777 Дата: Вторник, 24.04.2018, 11:39 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Serg73, Вы пытаетесь в строке
[vba]
Код
x = x & Chr(KeyAscii)
[/vba]
Переменной Х - которая, судя по Dim x#, имеет тип данных Double, присвоить значение "значение X + .", которое является уже строкой.... тут требуется явное преобразование типов. При этом, нужно исключить сложные ситуации, вызывающие ошибки при явном преобразовании (строки, аля "0.", "5." и тд.)


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Вторник, 24.04.2018, 11:41
 
Ответить
СообщениеSerg73, Вы пытаетесь в строке
[vba]
Код
x = x & Chr(KeyAscii)
[/vba]
Переменной Х - которая, судя по Dim x#, имеет тип данных Double, присвоить значение "значение X + .", которое является уже строкой.... тут требуется явное преобразование типов. При этом, нужно исключить сложные ситуации, вызывающие ошибки при явном преобразовании (строки, аля "0.", "5." и тд.)

Автор - Roman777
Дата добавления - 24.04.2018 в 11:39
_Boroda_ Дата: Вторник, 24.04.2018, 11:46 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У Вас после каждого нажатия клавиши происходит прибавление десятки. После КАЖДОГО!
55 - это ДВА нажатия
2,3 - это ТРИ нажатия (во втором нажатии Вы пытаетесь прибавить 10 к запятой)
Именно поэтому оба косяка и вылезают


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ Вас после каждого нажатия клавиши происходит прибавление десятки. После КАЖДОГО!
55 - это ДВА нажатия
2,3 - это ТРИ нажатия (во втором нажатии Вы пытаетесь прибавить 10 к запятой)
Именно поэтому оба косяка и вылезают

Автор - _Boroda_
Дата добавления - 24.04.2018 в 11:46
Serg73 Дата: Вторник, 24.04.2018, 12:33 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
А как это правильно все прописать?
 
Ответить
СообщениеА как это правильно все прописать?

Автор - Serg73
Дата добавления - 24.04.2018 в 12:33
StoTisteg Дата: Вторник, 24.04.2018, 12:40 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Для начала хотелось бы знать, что оно ДОЛЖНО делать...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеДля начала хотелось бы знать, что оно ДОЛЖНО делать...

Автор - StoTisteg
Дата добавления - 24.04.2018 в 12:40
Serg73 Дата: Вторник, 24.04.2018, 12:45 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
при в вводе любого числа (целого или числа с запятой, с десятыми или сотыми) в tbox , прибавлять к нему десять и отображать в этом же tbox-е а далее уже по условию, если вне диапазона, то tbox красный, если нет то зеленый
 
Ответить
Сообщениепри в вводе любого числа (целого или числа с запятой, с десятыми или сотыми) в tbox , прибавлять к нему десять и отображать в этом же tbox-е а далее уже по условию, если вне диапазона, то tbox красный, если нет то зеленый

Автор - Serg73
Дата добавления - 24.04.2018 в 12:45
StoTisteg Дата: Вторник, 24.04.2018, 12:47 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Тогда не хватает кнопки ОК, обозначающей, что ввод завершён. Ну и очевиднейшим образом — проверки, что введено именно число.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Вторник, 24.04.2018, 12:49
 
Ответить
СообщениеТогда не хватает кнопки ОК, обозначающей, что ввод завершён. Ну и очевиднейшим образом — проверки, что введено именно число.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 12:47
StoTisteg Дата: Вторник, 24.04.2018, 13:06 | Сообщение № 8
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Где-то так.
К сообщению приложен файл: 2881725.xlsm (14.4 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеГде-то так.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 13:06
Serg73 Дата: Вторник, 24.04.2018, 13:31 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Есть один нюанс, при вводе не целого значения он его показывает, но после нажатия на OК прибавляет десять и округляет до целого числа
И можно ли подобный цикл прописать в TextBox1_Change?
 
Ответить
СообщениеЕсть один нюанс, при вводе не целого значения он его показывает, но после нажатия на OК прибавляет десять и округляет до целого числа
И можно ли подобный цикл прописать в TextBox1_Change?

Автор - Serg73
Дата добавления - 24.04.2018 в 13:31
StoTisteg Дата: Вторник, 24.04.2018, 13:39 | Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
С нецелым сейчас проверю. Прописать-то можно, но смысл? Это нужно Public-переменную прописывать для проверки, первое ли это изменение...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеС нецелым сейчас проверю. Прописать-то можно, но смысл? Это нужно Public-переменную прописывать для проверки, первое ли это изменение...

Автор - StoTisteg
Дата добавления - 24.04.2018 в 13:39
StoTisteg Дата: Вторник, 24.04.2018, 13:44 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Исправленное с кнопкой.
К сообщению приложен файл: 2935203.xlsm (16.7 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеИсправленное с кнопкой.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 13:44
Serg73 Дата: Вторник, 24.04.2018, 13:53 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Для визуализации, и точного понимания необходимо что бы итоговое число было видно сразу
И далее по алгоритму у меня по кнопке ОК идет занесение чисел в определенные ячейки и обнуление Tboxs

Заранее спасибо
 
Ответить
СообщениеДля визуализации, и точного понимания необходимо что бы итоговое число было видно сразу
И далее по алгоритму у меня по кнопке ОК идет занесение чисел в определенные ячейки и обнуление Tboxs

Заранее спасибо

Автор - Serg73
Дата добавления - 24.04.2018 в 13:53
StoTisteg Дата: Вторник, 24.04.2018, 14:11 | Сообщение № 13
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Да ради Бога.
К сообщению приложен файл: 0189353.xlsm (17.0 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеДа ради Бога.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 14:11
StoTisteg Дата: Вторник, 24.04.2018, 14:14 | Сообщение № 14
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Хотя я бы в таком случае завершение ввода повесил бы например, на кнопку Enter. Иначе если юзверь ошибся в первой цифре, ему придётся очищать всё.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеХотя я бы в таком случае завершение ввода повесил бы например, на кнопку Enter. Иначе если юзверь ошибся в первой цифре, ему придётся очищать всё.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 14:14
Serg73 Дата: Вторник, 24.04.2018, 14:17 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Спасибо
А вопрос такой: почему +10 он воспринимает как +100?
 
Ответить
СообщениеСпасибо
А вопрос такой: почему +10 он воспринимает как +100?

Автор - Serg73
Дата добавления - 24.04.2018 в 14:17
StoTisteg Дата: Вторник, 24.04.2018, 14:28 | Сообщение № 16
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
У меня не воспринимает. Из 1 делает 11, из 5 — 15...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеУ меня не воспринимает. Из 1 делает 11, из 5 — 15...

Автор - StoTisteg
Дата добавления - 24.04.2018 в 14:28
StoTisteg Дата: Вторник, 24.04.2018, 14:31 | Сообщение № 17
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
А вообще у меня такое ощущение, что вы таким способом пытаетесь заставить юзверя ввести число от 100 до 199. Я прав? так для этого попроще способы есть.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеА вообще у меня такое ощущение, что вы таким способом пытаетесь заставить юзверя ввести число от 100 до 199. Я прав? так для этого попроще способы есть.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 14:31
Serg73 Дата: Вторник, 24.04.2018, 14:53 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Нет. Суть в том что есть user forma, на которой много tboxs и оператор вводит туда данные с различных измерительных систем. А этот tbox служит для измерения внут. диаметра и надо учесть что число со штангеля передается без учета измерительных губ, которые составляют 10 мм.
далее все значения переносятся в соответствующие ячейки и tboxs обнуляются и проводится второй ряд измерений.

И что то я начудил, когда я Ваш код прописал в своем цикле, tbox начал выдавать непонятные числа....
 
Ответить
СообщениеНет. Суть в том что есть user forma, на которой много tboxs и оператор вводит туда данные с различных измерительных систем. А этот tbox служит для измерения внут. диаметра и надо учесть что число со штангеля передается без учета измерительных губ, которые составляют 10 мм.
далее все значения переносятся в соответствующие ячейки и tboxs обнуляются и проводится второй ряд измерений.

И что то я начудил, когда я Ваш код прописал в своем цикле, tbox начал выдавать непонятные числа....

Автор - Serg73
Дата добавления - 24.04.2018 в 14:53
StoTisteg Дата: Вторник, 24.04.2018, 16:18 | Сообщение № 19
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
В таком случае нужно каким-то образом либо передавать в форму, что ввод числа завершён (например, нажатием Enter'а), либо городить анализ длины целой части введённого числа. По мне так первое проще — заодно можно передавать фокус следующему текстбоксу.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеВ таком случае нужно каким-то образом либо передавать в форму, что ввод числа завершён (например, нажатием Enter'а), либо городить анализ длины целой части введённого числа. По мне так первое проще — заодно можно передавать фокус следующему текстбоксу.

Автор - StoTisteg
Дата добавления - 24.04.2018 в 16:18
nilem Дата: Вторник, 24.04.2018, 17:34 | Сообщение № 20
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
далее все значения переносятся в соответствующие ячейки...

Вот в этот момент и прибавлять 10 к значению нужного текстбокса. Не?


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
далее все значения переносятся в соответствующие ячейки...

Вот в этот момент и прибавлять 10 к значению нужного текстбокса. Не?

Автор - nilem
Дата добавления - 24.04.2018 в 17:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » KeyAscii и число с плавающей точкой (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!