Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, подскажите как сделать чтобы в TextBox моно было вводить только пятизначные числовые значения отрицательные и положительные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 13:44 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
segailЗдравствуйте, подскажите как сделать чтобы в TextBox моно было вводить только пятизначные числовые значения отрицательные и положительные. А каким образом можно ввести пятизначное значение СРАЗУ? у вас клавиатура сразу пять знаков выдает? Вы определитесь, либо нужно ограничить ввод цифрами, либо сделать проверку после ввода (например по нажатию кнопки, по нажатию Enter, по потере фокуса и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 13:47 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
IsNumeric - проверяете, число ли потом Val - превращаете в число Abs - убираете знак i>9999 and i<100000 - проверяете диапазон (справедливо для целых чисел, вы не указали, могут ли быть дробные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 13:54 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Нужно ограничить ввод до пятизначного значения, не зависимо отрицательное или положительное. Например: -12345 12345 При выполнение действия: Private Sub TextBox1_Change() ‘… End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 13:55 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Поставлю вопрос так. Код уже есть. Как разрешить ввод минуса только впереди числового значения. С учетом того что в свойствах указано максимальное количество знаков 5? Private Sub TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 MsgBox " //////////////" End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 14:09 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Проверяйте SelStart (положение курсора) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 14:25 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
> Автор: Shocker.Pro > Проверяйте SelStart (положение курсора) + ещё нужно перекрывать момент вставки данных из буфера обмена Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 14:39 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос, Я бы вообще не стал обрабатывать KeyPress, а обрабатывал только Change, запоминая предыдущее значение и возвращая его взад при некорректном вводе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 14:41 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.ProИгорь Горбонос, Я бы вообще не стал обрабатывать KeyPress, а обрабатывал только Change, запоминая предыдущее значение и возвращая его взад при некорректном вводе А вот в моих контролах, я вобоще обрабатываю ввод только после его окончания (по нажатию Enter или потере фокуса). Если ввод неправильный, контрол ругается на пользователя и предлагает отредактировать значение или вернуть предыдущее и не дает контролу потерять фокус, пока не сделан корректный ввод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 14:43 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Короче сделал грубо но на форме смотрится Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2010, 16:01 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, в TextBox ввожу цифры 0,2, потом по нажатию CommndButton происходит событие Worksheets("Recept").Cells(tbScet_row, 12).NumberFormat = "0.00" (преобразует ячеку к чиловому формату) Worksheets("Recept").Cells(tbScet_row, 12).Value = tbKolUPak.Text (вводится текст в определенную ячейку) это число вставляется в ячейку с пометкой как текст и при это формат у ячейки остается числовой, если ввести 0.2 т.е. через точку то вставляется нармально = 0,20 необходимо вводить в TextBox число 0,2 или 0,55 и чтобы оно как число записывалось в ячеку как число Неподскажешь в чем проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 13:50 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
valdemar_ru Shocker.Pro, в TextBox ввожу цифры 0,2, потом по нажатию CommndButton происходит событие Worksheets("Recept").Cells(tbScet_row, 12).NumberFormat = "0.00" (преобразует ячеку к чиловому формату) Worksheets("Recept").Cells(tbScet_row, 12).Value = tbKolUPak.Text (вводится текст в определенную ячейку) это число вставляется в ячейку с пометкой как текст и при это формат у ячейки остается числовой, если ввести 0.2 т.е. через точку то вставляется нармально = 0,20 необходимо вводить в TextBox число 0,2 или 0,55 и чтобы оно как число записывалось в ячеку как число Неподскажешь в чем проблема ? Пора писать вторую статью - о том, чтобы не использовали неявные преобразования. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 13:56 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Я дописал функцию Worksheets("Recept").Cells(tbScet_row, 12).Value = CSng (tbKolUPak.Text) но теперь когда вводишь 2.5 или символ форма закрывается и выдает ошибку несоответствие типов. Я так полагаю надо написать проверку, что нужно вводить только цифры и запятую ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 18:27 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
valdemar_ru Shocker.Pro, Я дописал функцию Worksheets("Recept").Cells(tbScet_row, 12).Value = CSng (tbKolUPak.Text) но теперь когда вводишь 2.5 или символ форма закрывается и выдает ошибку несоответствие типов. Я так полагаю надо написать проверку, что нужно вводить только цифры и запятую ? Дело в том, что знак, который будет использоваться в качестве разделителя, зависит от региональных настроек в панели управления. То есть для корректной работы функции от пользователя требуется вводить числа так, как он задал в панели управления. То есть, конечно, самый простой выход - CSng(Replace(tbKolUPak.Text, ".", ",")) Но это работать будет только при установленной запятой в качестве разделителя. Либо проверять IsNumeric и ругаться на пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 19:23 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Большущие Спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 19:30 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
segail, может быть воспользоваться регулярными выражениями ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2010, 22:12 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
нашел код корый проверяет, что бы можно было вводить цифры, пробел и - он работает только на половину т.е. вводишь циры ошибка не выходит вводишь символ на английской расскладке выдает ошибку, но если ввести символ на русской раскладке вывалется по ошибке (Invalid procedure call or argument (Error 5)). Private Sub tbSnils_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim Errors If InStr("0123456789- ", Chr(KeyAscii)) = 0 Then KeyAscii = 0 Errors = MsgBox("1") End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2010, 13:52 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Эт лажа.... К тому же никак не защищает от вставки из буфера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2010, 13:59 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Что можете посоветовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2010, 14:32 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
IsNumeric ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2010, 14:46 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Написал код для проверки: Private Sub tbSnils_Change() If Pr = True Then Pr = False Exit Sub End If Proverka End Sub Private Sub tbSnils_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 8 Or KeyCode = 46 Then Pr = True End If End Sub Sub Proverka() Dim P As Variant For i = 1 To Len(UserForm.tbSnils.Text) P = Mid(UserForm.tbSnils.Text, i, 1) If P < Chr(48) Or P > Chr(57) Then If P < Chr(150) Or P > Chr(150) Then If P < Chr(32) Or P > Chr(32) Then If P < Chr(160) Or P > Chr(160) Then If P < Chr(45) Or P > Chr(45) Then MsgBox ("Вводить можно только цифры и - (шаблон ###-###-### ##)") Exit Sub End If End If End If End If End If Next 'UserForm.tbSnils.SetFocus End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 09:20 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Написал код для проверки: авторPrivate Sub tbSnils_Change() If Pr = True Then Pr = False Exit Sub End If Proverka End Sub Private Sub tbSnils_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 8 Or KeyCode = 46 Then Pr = True End If End Sub Sub Proverka() Dim P As Variant For i = 1 To Len(UserForm.tbSnils.Text) P = Mid(UserForm.tbSnils.Text, i, 1) If P < Chr(48) Or P > Chr(57) Then If P < Chr(150) Or P > Chr(150) Then If P < Chr(32) Or P > Chr(32) Then If P < Chr(160) Or P > Chr(160) Then If P < Chr(45) Or P > Chr(45) Then MsgBox ("Вводить можно только цифры и - (шаблон ###-###-### ##)") Exit Sub End If End If End If End If End If Next End Sub Проверка работает, но елси происходит событие KeyDown и после етого ввести символ или что то скопировать, то ошибка не выходит если не попробовать еще раз. Подскажите как можно поправить или почему так происходит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 09:23 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
во-первых, оформляйте код правильно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. во-вторых. немного поясните смысл возни с Pr - я его не уловил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 09:35 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Pr глобальная переменная которая позволяет отлавливать нажатия KeyCode=8 (BackSpace) и KeyCode=46 (Del) что бы можно было удалять введнный текст и проверка в этот момент не работала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 09:40 |
|
||
|
числовые значения в TextBox
|
|||
|---|---|---|---|
|
#18+
valdemar_ru Shocker.Pro, Pr глобальная переменная которая позволяет отлавливать нажатия KeyCode=8 (BackSpace) и KeyCode=46 (Del) что бы можно было удалять введнный текст и проверка в этот момент не работала. А что меняет наличие этой проверки? Все равно кроме предупреждения прога у вас ничего не делает, вводить не запрещает, так какая разница, идет проверка после ввода символа или после удаления символа. Я к тому, что если отключить проверку Pr , все работает нормально? Я просто не работал с MSForms, не знаю особенностей возникновения Change ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 09:51 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=127&tid=2159727]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 275ms |
| total: | 401ms |

| 0 / 0 |
