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

Вход

Регистрация

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

 

= Мир MS Excel/TextBox и числовой формат - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
TextBox и числовой формат
anger47 Дата: Среда, 12.03.2014, 13:59 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 192
Репутация: 6 ±
Замечаний: 0% ±

Здравствуйте, помогите правильно оформить VBA код для TextBox_а. Я хотел бы, что б число которое вводится в данный ТекстБокс, выглядело так, например: 400,00 или 4 000,00. Но видимо я что то упускаю ибо не делает так как написано в коде. Если я напишу 400 и выхожу с ТексБокса, то что бы автоматом добавило 400,00, если же сам набрал к примеру 400,01, то так и оставило.
[vba]
Код
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Me.TextBox1 = Format(Me.TextBox1, "### ### ###,0,##")
End Sub
[/vba]
И почему в ячейку переносит число как текст, а не как число?
для удобства прикрепляю файл пример
К сообщению приложен файл: 8804602.xlsm (21.6 Kb)
 
Ответить
СообщениеЗдравствуйте, помогите правильно оформить VBA код для TextBox_а. Я хотел бы, что б число которое вводится в данный ТекстБокс, выглядело так, например: 400,00 или 4 000,00. Но видимо я что то упускаю ибо не делает так как написано в коде. Если я напишу 400 и выхожу с ТексБокса, то что бы автоматом добавило 400,00, если же сам набрал к примеру 400,01, то так и оставило.
[vba]
Код
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Me.TextBox1 = Format(Me.TextBox1, "### ### ###,0,##")
End Sub
[/vba]
И почему в ячейку переносит число как текст, а не как число?
для удобства прикрепляю файл пример

Автор - anger47
Дата добавления - 12.03.2014 в 13:59
Саня Дата: Среда, 12.03.2014, 14:57 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
события TextBox1_Exit нет для текстбокса на листе (у тебя в примере именно такой), поэтому:

[vba]
Код
Private Sub TextBox1_LostFocus()
     Dim dVal As Double

     With Me.TextBox1
         dVal = CDbl(Replace(.Text, ".", ","))   ' м.б. ошибка!
         .Text = Format(dVal, "#,##0.00")
     End With
      
     ' зачем связывать текстбокс, можно так
     ' Me.Range("G3").Value = dVal
     ' с предыдущей строки снимешь комментарий после разрыва связи ячейки и поля
End Sub
[/vba]
 
Ответить
Сообщениесобытия TextBox1_Exit нет для текстбокса на листе (у тебя в примере именно такой), поэтому:

[vba]
Код
Private Sub TextBox1_LostFocus()
     Dim dVal As Double

     With Me.TextBox1
         dVal = CDbl(Replace(.Text, ".", ","))   ' м.б. ошибка!
         .Text = Format(dVal, "#,##0.00")
     End With
      
     ' зачем связывать текстбокс, можно так
     ' Me.Range("G3").Value = dVal
     ' с предыдущей строки снимешь комментарий после разрыва связи ячейки и поля
End Sub
[/vba]

Автор - Саня
Дата добавления - 12.03.2014 в 14:57
anger47 Дата: Среда, 12.03.2014, 15:30 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 192
Репутация: 6 ±
Замечаний: 0% ±

Саня, сейчас посмотрю, пока что спасибо
Проверил, все работает спасибо огромное!!!


Сообщение отредактировал anger47 - Среда, 12.03.2014, 15:32
 
Ответить
СообщениеСаня, сейчас посмотрю, пока что спасибо
Проверил, все работает спасибо огромное!!!

Автор - anger47
Дата добавления - 12.03.2014 в 15:30
  • Страница 1 из 1
  • 1
Поиск:

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