Существует проблема/особенность при работе с десятичными дробями - это разделитель "." или ",". Приходится делать автозамену. После замены "." на "," значения записываются в ячейку правильно, но не все формулы их воспринимают правильно. Например: A3=СУММ(A1:A2) - не вычисляет a вот A3=A1 + A2 - вычисляет без проблем
Кроме того при выделении диапазона (A1:A2) в правом нижнем углу окна Excel также не считается сумма, а показывает только количество выделенных ячеек.
Как правильно задать формат для TextBox, чтобы значение воспринималось, как число и формула на листе работала? И как правильно установить ограничения, что бы нельзя было ввести ничего, кроме числа с десятичными значениями в поле TextBox?
Файлик с примером прилагаю.
Существует проблема/особенность при работе с десятичными дробями - это разделитель "." или ",". Приходится делать автозамену. После замены "." на "," значения записываются в ячейку правильно, но не все формулы их воспринимают правильно. Например: A3=СУММ(A1:A2) - не вычисляет a вот A3=A1 + A2 - вычисляет без проблем
Кроме того при выделении диапазона (A1:A2) в правом нижнем углу окна Excel также не считается сумма, а показывает только количество выделенных ячеек.
Как правильно задать формат для TextBox, чтобы значение воспринималось, как число и формула на листе работала? И как правильно установить ограничения, что бы нельзя было ввести ничего, кроме числа с десятичными значениями в поле TextBox?
Тут на днях похожее обсуждали, но с более извращенными форматами, так ТС сначала выложила как раз файл с такой жуткой формой. А само обсуждение вполне может быть полезно для ТС.
Тут на днях похожее обсуждали, но с более извращенными форматами, так ТС сначала выложила как раз файл с такой жуткой формой. А само обсуждение вполне может быть полезно для ТС.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Помогло, формула стала считать, но теперь не могу через диалоговое окно ввести запятую, а при вводе в ячейку - ошибка в макросе. Опять конфликт точек и запятых
А как сделать , что бы в форму можно было забить только десятичные числа и ничего другого?
Помогло, формула стала считать, но теперь не могу через диалоговое окно ввести запятую, а при вводе в ячейку - ошибка в макросе. Опять конфликт точек и запятых
А как сделать , что бы в форму можно было забить только десятичные числа и ничего другого?Stork4ever
Сообщение отредактировал Stork4ever - Воскресенье, 10.09.2017, 20:00
Я уже 4 дня бьюсь над этой проблемой... Понимаю, что решение наверняка простое, но оно пока так и не найдено. Решаю проблему с вычислением, получаю проблему с вводом, решаю проблему с вводом, слетает вычисление. Файл с примером простой, но даже на нем не могу сделать так, что бы работало. Данные должны вводиться, как в ячейку, так и через диалоговое окно. А задача еще и ограничить ввод, что бы через форму диалогового окна можно было вводить только цифры и одну запятую. Еще и ошибки отфильтровать, что бы не слетал макрос в случае некорректного ввода, как в ячейку, так и в TextBox.
Не работает.
Я уже 4 дня бьюсь над этой проблемой... Понимаю, что решение наверняка простое, но оно пока так и не найдено. Решаю проблему с вычислением, получаю проблему с вводом, решаю проблему с вводом, слетает вычисление. Файл с примером простой, но даже на нем не могу сделать так, что бы работало. Данные должны вводиться, как в ячейку, так и через диалоговое окно. А задача еще и ограничить ввод, что бы через форму диалогового окна можно было вводить только цифры и одну запятую. Еще и ошибки отфильтровать, что бы не слетал макрос в случае некорректного ввода, как в ячейку, так и в TextBox.Stork4ever
Сообщение отредактировал Stork4ever - Воскресенье, 10.09.2017, 21:17
Private Sub TextBox1_Change() If IsNumeric(Replace(Replace(TextBox1, ",", ""), ".", "")) Then Sheets("Лист1").Range("A1") = Replace(TextBox1, ",", ".") Else TextBox1 = "" End If End Sub
Private Sub TextBox2_Change() If IsNumeric(Replace(Replace(TextBox2, ",", ""), ".", "")) Then Sheets("Лист1").Range("A2") = Replace(TextBox2, ",", ".") Else TextBox2 = "" End If End Sub
[/vba]
А так? [vba]
Код
Private Sub TextBox1_Change() If IsNumeric(Replace(Replace(TextBox1, ",", ""), ".", "")) Then Sheets("Лист1").Range("A1") = Replace(TextBox1, ",", ".") Else TextBox1 = "" End If End Sub
Private Sub TextBox2_Change() If IsNumeric(Replace(Replace(TextBox2, ",", ""), ".", "")) Then Sheets("Лист1").Range("A2") = Replace(TextBox2, ",", ".") Else TextBox2 = "" End If End Sub
Так очень странно работает. Не дает ввести запятую с последовательно набирая число в поле TextBox. Но дает ее вставить в существующее число. Например, пытаюсь набрать 12,36. Набирает 1236. Потом (после сохранения) между 12 и 36 могу вставить запятую. Но сразу набрать число с запятой не получается.
Так очень странно работает. Не дает ввести запятую с последовательно набирая число в поле TextBox. Но дает ее вставить в существующее число. Например, пытаюсь набрать 12,36. Набирает 1236. Потом (после сохранения) между 12 и 36 могу вставить запятую. Но сразу набрать число с запятой не получается.Stork4ever
Во-первых, при попытке ввести значение в ячейку вместо запятой ставится точка и вылезает ошибка макроса. Во-вторых, при вводе числа с запятой в TextBox, запятая просто не ставится. После сохранения числа без запятой, запятую можно вставить в нужное место.
Погоняйте сами на своем компьютере. По вводите числа и в ячейку и в textbox.
Не работает.
Во-первых, при попытке ввести значение в ячейку вместо запятой ставится точка и вылезает ошибка макроса. Во-вторых, при вводе числа с запятой в TextBox, запятая просто не ставится. После сохранения числа без запятой, запятую можно вставить в нужное место.
Погоняйте сами на своем компьютере. По вводите числа и в ячейку и в textbox.Stork4ever
Сообщение отредактировал Stork4ever - Воскресенье, 10.09.2017, 23:05
В выложенном файле Вы отключили обратную связь с диалоговым окном. Поэтому ошибка не возникает. 1. Если ввести число в ячейку, то в textbox оно не попадает. 2. В texbox значения вводятся не с запятой, а с точкой.
Т.о. получается, что из диалога значения в ячейку вносятся, хотя в поле textbox они отображаются с точкой, а при вводе числа в ячейку в textbox значение ячейки не подхватывается.
В выложенном файле Вы отключили обратную связь с диалоговым окном. Поэтому ошибка не возникает. 1. Если ввести число в ячейку, то в textbox оно не попадает. 2. В texbox значения вводятся не с запятой, а с точкой.
Т.о. получается, что из диалога значения в ячейку вносятся, хотя в поле textbox они отображаются с точкой, а при вводе числа в ячейку в textbox значение ячейки не подхватывается.Stork4ever