tạo Textbox tự động nhảy số (1 người xem)

Người dùng đang xem chủ đề này

nam739478

Thành viên mới
Tham gia
26/9/09
Bài viết
38
Được thích
2
Xin chào các bác trong GPX em có 1 file như sau:
Nhờ các pác hộ em một số lệnh như sau:
Textbox MÃ TV tự động nhảy số (dựa vào số cuối cùng cột 3 +1)
Textbox CMND chỉ nhập được 9 số
p/s có thể thêm Textbox cấp ngày định dạng sẵn / / (ví dụ ngày 15/12/2014 thì chỉ nhập 15122014)
trân thành cảm ơn!
 

File đính kèm

PHP:
Private Sub CommandButton3_Click()
TextBox2 = [C65536].End(xlUp) + 1
End Sub

Private Sub TextBox5_Change()
If TextBox5.TextLength = 10 Then TextBox5 = Left(TextBox5, 9)
End Sub
 

File đính kèm

Upvote 0
1/Độ dài Textbox5=9 để tránh trường hợp người dùng Paste số >10 theo mình Hoang Danh nên sửa thành:

Mã:
[COLOR=#000000][COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub TextBox5_Change[/COLOR][COLOR=#007700]()
[/COLOR][COLOR=#0000BB]TextBox5 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Left[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TextBox5[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]9[/COLOR][COLOR=#007700])
[/COLOR][COLOR=#0000BB]End Sub  [/COLOR][/COLOR]

2/Nhập ngày: Mình viết code nhập theo yêu cầu của bạn nhưng chưa kiểm tra ngày hợp lệ hay chưa (Bạn tự bổ xung)
Bạn chép đoạn code sau vào để test nha:

Mã:
Private Sub TextBox1_Enter()
With Me.TextBox1
.Text = "__/__/____"
.SelStart = 0
.SelLength = 1
End With
End Sub
'----------------------------------------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim Ch, i, j, Hs()
Hs = Array(1, 3, 4, 6, 7, 8, 9, 10)
If KeyAscii > 47 And KeyAscii < 58 Then
Ch = TextBox1
Ch = Replace(Replace(Ch, "/", ""), "_", "")
Ch = Ch & Chr(KeyAscii)
j = Len(Ch)
j = IIf(j = 0, 0, Hs(j - 1))
Ch = Left(Ch & "________", 8)
Ch = Left(Ch, 2) & "/" & Mid(Ch, 3, 2) & "/" & Right(Ch, 4)
TextBox1 = Ch
TextBox1.SelStart = j
TextBox1.SelLength = 1
End If
KeyAscii = 0
End Sub
'---------------------------------------
Private Sub UserForm_Initialize()
Me.TextBox1 = "__/__/____"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
2/Nhập ngày: Mình viết code nhập theo yêu cầu của bạn nhưng chưa kiểm tra ngày hợp lệ hay chưa (Bạn tự bổ xung)
Bạn chép đoạn code sau vào để test nha:

Mã:
Private Sub TextBox1_Enter()
With Me.TextBox1
.Text = "__/__/____"
.SelStart = 0
.SelLength = 1
End With
End Sub
'----------------------------------------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim Ch, i, j, Hs()
Hs = Array(1, 3, 4, 6, 7, 8, 9, 10)
If KeyAscii > 47 And KeyAscii < 58 Then
Ch = TextBox1
Ch = Replace(Replace(Ch, "/", ""), "_", "")
Ch = Ch & Chr(KeyAscii)
j = Len(Ch)
j = IIf(j = 0, 0, Hs(j - 1))
Ch = Left(Ch & "________", 8)
Ch = Left(Ch, 2) & "/" & Mid(Ch, 3, 2) & "/" & Right(Ch, 4)
TextBox1 = Ch
TextBox1.SelStart = j
TextBox1.SelLength = 1
End If
KeyAscii = 0
End Sub
'---------------------------------------
Private Sub UserForm_Initialize()
Me.TextBox1 = "__/__/____"
End Sub
[/QUOTE]

Em làm được như bác hướng dẫn rồi, áp dụng cho cả textbox6, và textbox 10. Nhưng bác cho em hỏi thêm chút là trong textbox 1, 5, 6, 9, 10 sau khi nhập đủ số (ví dụ như CMND nhập đủ 9 số thì trỏ chuột tự động nhảy sang textbox tiếp theo được không ạ? em xin cảm ơn
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom