Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 20:48   #1
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию Дата в TextBox

Код вставляет текущюю дату в текстбокс на форме
Код:
Private Sub myColumn17_Change()
myColumn17.Value = Format(Now, "dd.mm.yyyy")
End Sub
А как сделать чтобы дату можно было ставить любую, но в формате dd.mm.yyyy. Чтобы точки сами ставились.
and150382 вне форума Ответить с цитированием
Старый 16.04.2013, 21:28   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Вы не потрудитесь изьясняться доходчивее?
что за загадочная констукция?
не успел пользователь что-то поправить в myColumn17 как тут же все его усилия насмарку и в myColumn17 попадает Format(Now, "dd.mm.yyyy")
как раз в том формате, что вы хотите и точки сами расставились только при этом совершенно не важно что пытался ввести пользователь.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.04.2013, 21:52   #3
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Я не силен в vba пытался сделать чтобы можно было ввести дату без точек,а точки сами бы расставились. Но получилось только то что пользователь начинает вводить данные,а тут же встает текущая дата( Now)
and150382 вне форума Ответить с цитированием
Старый 16.04.2013, 22:32   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If IsDate(TextBox1.Value) Then Exit Sub
  If Len(TextBox1.Value) <> 8 Then
    MsgBox "Либо дата ДД.ММ.ГГГГ либо 8 цифр ДДММГГГГ": Cancel = True
  Else
    TextBox1.Value = Left(TextBox1.Value, 2) & "." & Mid(TextBox1.Value, 3, 2) & "." & Right(TextBox1.Value, 4)
  End If
End Sub
назовите поле ввода даты на своей форме таким оригинальным именем TextBox1, этот код скопируйте в модуль формы.
Срабатывать процедура должна не по вводу очередного символа (при изменении значения в форме) а при выходе из нее. приведенный код не выпустит из поля редактирования пока не будет введена дата или просто 8 знаков.
это Вам заготовка для экспериментов.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 16.04.2013 в 22:35.
IgorGO вне форума Ответить с цитированием
Старый 17.04.2013, 06:19   #5
and150382
Форумчанин
 
Регистрация: 19.10.2012
Сообщений: 217
По умолчанию

Спасибо большое, буду пробовать
and150382 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Внести данные из Textbox Form2 в TextBox Form1 uralshans Microsoft Office Excel 1 07.01.2013 17:15
TextBox и дата Fordros Microsoft Office Excel 5 20.11.2012 22:42
Дата введённая "ручками" и дата полученная по ссылке kzld Microsoft Office Excel 0 06.05.2011 14:45
текущая дата,время и курс ЦБ в TextBox mihahhh Microsoft Office Excel 2 03.03.2011 00:29
Вычитание дат(дата-дата=кол.дней) zallza Общие вопросы Delphi 1 31.05.2010 22:50