UserForm üzerindeki bir TextBox nesnesine karakter girişi yapıldığı zaman sadece sayı girişine ve BackSpace tuşu ile silme işlemine izin veren alternatif bir makro kodudur.
Option Explicit
Sub SadeceSayiGirisiYap_KeyPress(TextBox As MSForms.TextBox, ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii <> 8 Then
If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
KeyAscii = 0
End If
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
SadeceSayiGirisiYap_KeyPress TextBox1, KeyAscii
End Sub
Option Explicit
Sub SadeceSayiGirisiYap_KeyPress(TextBox As MSForms.TextBox, ByVal KeyAscii As MSForms.ReturnInteger)
'--------------------------------------------------
'Eğer KeyAscii değeri olarak 8 değeri
'geliyorsa (Backspace) bu girişe izin ver.
'--------------------------------------------------
If KeyAscii <> 8 Then
'--------------------------------------------------
'Eğer Chr(KeyAscii) değeri gönderildiğiğinde bu
'değerin sıfırdan küçük ya da dokuzdan büyük
'olup olmadığını kontrol et, ona göre çalış.
'--------------------------------------------------
If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
'--------------------------------------------------
'Eğer Chr(KeyAscii) değeri bu aralığın dışındaysa
'o halde KeyAscii değerini sıfıra yani null'a eşitle.
'--------------------------------------------------
KeyAscii = 0
End If
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'--------------------------------------------------
'SadeceSayiGirisiYap_KeyPress olayını UserForm
'üzerindeki bir TextBox örneğinde kullan.
'--------------------------------------------------
SadeceSayiGirisiYap_KeyPress TextBox1, KeyAscii
End Sub