1

Тема: Авто коррекция ввода даты в TextBox

Доброго
Помогите реализовать.
В UserForm есть TextBox в который пользователь должен ввести дату.
Идея заключается в том, когда человек ввел число, например 12 то сразу автоматом ставится точка, потом он вводит 10 и так же подставляется точка, дальше может быть два развития события либо человек написал 2019 и его курсор автоматический переводится на следующий TextBox или он просто пишет 19 и перейдя на следующий TextBox либо с помощью Tab или курсором 12.10.19 переделывается в 12.10.2019. Так же нужно что бы можно было писать только цифры и подчеркивание.

Post's attachments

На форум пример.rar 19.78 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

2

Re: Авто коррекция ввода даты в TextBox

Otradnoe_4D пишет:

Доброго
Помогите реализовать.
В UserForm есть TextBox в который пользователь должен ввести дату.
Идея заключается в том, когда человек ввел число, например 12 то сразу автоматом ставится точка, потом он вводит 10 и так же подставляется точка, дальше может быть два развития события либо человек написал 2019 и его курсор автоматический переводится на следующий TextBox или он просто пишет 19 и перейдя на следующий TextBox либо с помощью Tab или курсором 12.10.19 переделывается в 12.10.2019. Так же нужно что бы можно было писать только цифры и подчеркивание.

Всё бы было здорово, только это частично лишь сработает без дополнительной информации от пользователя. Ну или пользоваться только до 20-го года, а вот если только последние 2 цифры вводить, то тогда норм.

Private Sub TextBox1_Change()
If Len(UserForm1.TextBox1.Value) = 2 Or Len(UserForm1.TextBox1.Value) = 5 Then
    TextBox1.Value = UserForm1.TextBox1.Value & Chr(46)
ElseIf Len(UserForm1.TextBox1.Value) = 8 Then
    Select Case Right(UserForm1.TextBox1.Value, 2)
        Case "19": TextBox1.Value = Left(UserForm1.TextBox1.Value, 6) & "2019"
        Case "18": TextBox1.Value = Left(UserForm1.TextBox1.Value, 6) & "2018"
    End Select
ElseIf Len(UserForm1.TextBox1.Value) = 10 Then
    UserForm1.TextBox2.SetFocus
End If
End Sub
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871