MTNQ > 28-03-14, 07:20 PM
MTNQ > 29-03-14, 12:09 PM
Select Case KeyAscii
Case ... To .., ... to ...
KeyAscii = 0
Case 97 To 122
KeyAscii = Asc(UCase(Chr(KeyAscii)))
..........
End Select
(Len([Text3])=3 And Not Like "*[!a-z]*") ' Hoặc like "???" And Not Like "*[!a-z]*"
Private Sub Text3_AfterUpdate()
Me!Text3 = UCase(ConvertToNotSign(Me!Text3))
End Sub
Xuân Thanh > 29-03-14, 04:42 PM
Private Sub txtABC_AfterUpdate()
If UCase(txtABC) <> txtABC Then
MsgBox "Phai nhap chu hoa" , , "Chu y"
Exit Sub '''' hoac gi gi do
ElseIf Len(txtABC) <> 3 Then
MsgBox "Chi duoc nhap 3 ky tu" , , "Chu y"
Exit Sub
ElseIf IsNumeric(Mid(txtABC,1,1)) = True Or IsNumeric(Mid(txtABC,2,1)) = True Or IsNumeric(Mid(txtABC,3,1)) = True Then
MsgBox " Khong duoc nhap so" , , "Chu y"
Exit Sub
End If
End Sub
paulsteigel > 31-03-14, 02:34 PM
'//Khai báo kiểu cho phép nhập liệu cho dễ dùng sau này
Public Enum KeyinMode
NumberType = 1 ' Chỉ cho nhập số
DateType = 2 ' Chỉ cho nhập kiểu ngày
FormularType = 3 ' Chỉ cho nhập dạng công thức
NumberOnlyType = 4 ' chỉ cho nhập số
FreeType = 5 ' cho nhập tất cả
End Enum
'////////////////////Đây là những thủ tục gắn trên form - giả sử là đối với textbox txtFIG_PLNST_DATE
'//
Private Sub txtFIG_PLNST_DATE_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
ValidateKeycode KeyAscii, DateType
End Sub
'///Cái này để ngăn cấm dùng cắt dán chẳng hạn (tất nhien cả phần bấm phải chuột nữa cũng phải tính đến
Private Sub txtFIG_PLN_DATE_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
NoCutAction KeyCode, Shift
End Sub
'///////////////////Đây là những thủ tục để trong 1 module để có thể dùng nhiều với các textbox khác nhau
'//Cái này cấm dán
Sub NoCutAction(kCde As MSForms.ReturnInteger, ByVal ShiftKey As Integer)
If (ShiftKey And 2) And (kCde = Asc("V")) Then kCde = 0
End Sub
'//Cái này cho phép gõ một số thứ tùy theo lựa chọn
Sub ValidateKeycode(kCde As MSForms.ReturnInteger, Optional iNum As KeyinMode = 1)
Select Case iNum
Case 1:
If kCde <> vbKeyBack Then
If InStr("0123456789", ChrW(kCde)) = 0 Then
If InStr(".", ChrW(kCde)) <> 0 Then
kCde = AscW(AppLocale.DecimalSeparator)
Else
kCde = 0
End If
End If
End If
Case 2:
If InStr("0123456789/", ChrW(kCde)) = 0 And kCde <> vbKeyBack Then kCde = 0
Case 3:
If InStr("()+-*/0123456789", ChrW(kCde)) = 0 And kCde <> vbKeyBack Then kCde = 0
Case 4:
If InStr("0123456789", ChrW(kCde)) = 0 And kCde <> vbKeyBack Then kCde = 0
Case 5:
' enable free type
End Select
End Sub