textbox'a sadece numara girilebilsin

Katılım
24 Aralık 2004
Mesajlar
63
Excel Vers. ve Dili
2003tr
Sanırım bu soru defalarca sorulmuş irdelenmiştir fakat arama motorunda her zaman olduğu gibi sonuç noktasında hüsrana uğradım. sorum şöyle ki bir textbox var ve sadece rakam girilmesi gerekiyo başka bi giriş halinde msgbox hatası vermesini istiyorum.
yardım edebilirseniz sevinirim
hayırlı çalışmalar
 
Katılım
24 Şubat 2006
Mesajlar
265
Excel Vers. ve Dili
xp 2003 Türkçe
Private Sub TextBox1_Change()
If Len(TextBox1.Text) = 0 Then Exit Sub
If Not IsNumeric(TextBox1.Text) Then
Beep
MsgBox "Numerik olmayan bir değer girdiniz"
End If
End Sub

Mahmut hocama selamlar
 
Katılım
18 Aralık 2005
Mesajlar
464
Excel Vers. ve Dili
ofis2003
Private Sub TextBox1_Change()
If IsNumeric(TextBox1) = False And TextBox1 <> Empty Then
MsgBox "Sadece sayı girebilirsiniz."
TextBox1 = ""
End If
End Sub

altarnatif olabilir
 
Katılım
24 Aralık 2004
Mesajlar
63
Excel Vers. ve Dili
2003tr
Teşekkürler

Arkadaşlar kodlar için çok teşekkür ediyorum. Zahmet oldu emeğinize sağlık
Bu arada yüksel bey sizin kodda msgbox'tan sonra textbox temizleme koydum daha kullanışlı oldu bide beeb kodunu görünce sesli uyarı bekledim ama duymadım olsun bu da yeter sağolun.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,263
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Farklı bir alternatif olarak aşağıdaki koduda kullanabilirsiniz. Bu kod ile Textboxa sadece rakam ve virgül girebilirsiniz. Umarım faydası olur.

Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
    Case Asc("0") To Asc("9")
    Case Asc(",")
    Case Else
    KeyAscii = 0: MsgBox "Sadece rakam girebilirsiniz.", vbExclamation, "Dikkat !"
    End Select
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Yada,
Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)    
   If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Or KeyAscii <> 44 Then
        MsgBox"Say&#305; girmelisiniz"
    End If
End Sub
 
Katılım
15 Eylül 2005
Mesajlar
54
arkadaşlar, aşağıdaki kodla textbox1 deki verilerin sayısal olup olmadığını kontrol etmek istiyorum ama 89 kabul ediyor 90'ı ve üstünü kabul etmiyor.. neden acaba?


Kod:
Private Sub CommandButton1_Click()
.
.
.
If CheckBox1.Value = True Then
Select Case TextBox1.Text
Case 0 To 9
Case Else
KeyAscii = 0: MsgBox "Değer girmediniz yada sayısal olmayan bir değer girmeye çalışıyorsunuz." & Chr(10) & "Lütfen işleminizi kontrol ediniz", vbExclamation, "Dikkat !"
TextBox1.Text = ""
ComboBox1.ListIndex = -1
Exit Sub
End Select
Range("h" & x) = TextBox1.Value
End If
.
.
.
End sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
arkadaşlar, aşağıdaki kodla textbox1 deki verilerin sayısal olup olmadığını kontrol etmek istiyorum ama 89 kabul ediyor 90'ı ve üstünü kabul etmiyor.. neden acaba?

Textbox1 deki verinin sayısal olup olmadığını kontrol etmek için ascii değerine bakmak gerekmez, bunun için aşağıdaki fonksiyonu kullanabilirsiniz.

Kod:
if isnumeric(textbox1)=false then
 MsgBox "Değer girmediniz yada sayısal olmayan bir değer girmeye çalışıyorsunuz."
exit sub
end if
 

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
224
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Textbox1 deki verinin sayısal olup olmadığını kontrol etmek için ascii değerine bakmak gerekmez, bunun için aşağıdaki fonksiyonu kullanabilirsiniz.

Kod:
if isnumeric(textbox1)=false then
MsgBox "Değer girmediniz yada sayısal olmayan bir değer girmeye çalışıyorsunuz."
exit sub
end if
Hocam teşekkür ederim Kendi yapmış olduğum çalışmaya uyarlamaya çalıştım fakat uyarı mesajı 2 kez geliyor harf yazdığında hatalı girdiği harfi silip işleme devam etmesini istiyorum yani harf hiç yazamasın sadece sayılardan ibaret olsun uyarıda vermesine gerek yok.
Rich (BB code):
Private Sub Txt_TC_Change()
If IsNumeric(Txt_TC) = False Then 'sayısal olup olmadığını kontrol etmek
Txt_TC.Value = ""
MsgBox "Değer girmediniz yada sayısal olmayan bir değer girmeye çalışıyorsunuz.", vbOKOnly, " UYARI"

Exit Sub
End If
End Sub
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Aşağıdaki satırı ekleyerek dener misiniz?

Kod:
Private Sub Txt_TC_Change()
    If IsNumeric(Txt_TC) = False Then Txt_TC.Value = ""
End Sub
 
Son düzenleme:

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
224
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Merhaba,
Aşağıdaki satırı ekleyerek dener misiniz?

Kod:
Private Sub Txt_TC_Change()
     If Txt_TC.Value = "" Then Exit Sub
Kodların başına ekledim dediğiniz gibi oldu hocam
Hocam bir de 123a yazıldığında sonda yazan a harfini silip 123 bırakma şansımız var mı?
Çözümü buldum hocam diğer arkadaşların işine yarayacaksa
Harf girişini engelleme

Kod:
Private Sub Txt_TC_Change()
If Txt_TC.Value = "" Then Exit Sub
If IsNumeric(Txt_TC) = False Then 'sayısal olup olmadığını kontrol etmek
On Local Error Resume Next
Txt_TC.Text = Mid(Txt_TC.Text, 1, Len(Me.Txt_TC.Text) - 1)
 'MsgBox "Değer girmediniz yada sayısal olmayan bir değer girmeye çalışıyorsunuz.", vbOKOnly, " UYARI"
 
Exit Sub
End If
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibide deneyebilirsiniz.

Kod:
Private Sub Txt_TC_Change()

If IsNumeric(Txt_TC) = False Then CreateObject("WScript.Shell").SendKeys "{bs}", True

End Sub
 
Üst