TEXTBOXa sadece tamsayı girilebilmesi

Katılım
29 Nisan 2007
Mesajlar
81
Excel Vers. ve Dili
2003 Türkçe
Textboxa sadece tamsayı girilmesi icin yazdıgım bu kod bazen calısıyor bazen hata veriyor. Bunun ne gibi bir sebebi olabilir?



If Val(TextBox55.Value) <> (Round(TextBox55.Value, 0)) Then
MsgBox ("Lütfen tamsayı giriniz")
TextBox55.Value = ""
TextBox55.SetFocus
End If
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Eğer numerik (sayısal) bir değer dışında bir şey girerseniz, hata vermesi normal.... Çünkü "Val" ve "Round" fonskiyonları sadece sayısal değerlerle işlem yapar.

Bunun için kodunuzu aşağıdaki gibi revize ediniz.

Kod:
If IsNumeric(textbox55.Text) = True Then: MsgBox "Sadece Sayısal değerler girebilirsiniz", vbCritical, "UYARI"
If Val(textbox55.Value) <> (Round(textbox55.Value, 0)) Then
MsgBox ("Lütfen tamsayı giriniz")
textbox55.Value = ""
textbox55.SetFocus
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub TextBox55_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If IsNumeric(TextBox55.Text) Then
        If Val(TextBox55.Value) <> (Round(TextBox55.Value, 0)) Then
            MsgBox ("L&#252;tfen tamsay&#305; giriniz")
            GoTo atla:
        Else
            Exit Sub
        End If
    Else
        MsgBox "Sadece Say&#305;sal de&#287;erler girebilirsiniz", vbCritical, "UYARI"
    End If
atla:
    Cancel = True
    TextBox55.Value = ""
    TextBox55.SetFocus
End Sub
 
Katılım
29 Nisan 2007
Mesajlar
81
Excel Vers. ve Dili
2003 Türkçe
evet sanırım elim takılıp bosluk falan atıyordum :) cok tesekkur ederim..
 
Katılım
7 Mart 2005
Mesajlar
31
Merhaba,

Belki bu kodlar da i&#351;inize yarayabilir.

Kod:
Private Sub TextBox55_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
 
Katılım
29 Nisan 2007
Mesajlar
81
Excel Vers. ve Dili
2003 Türkçe
ben kodu sadece sayısal veriler girilebilir diye duzenledim ama aslında sistem şuydu;

userform uzerinde textboxlara degerler atıyorum ve o sırada excel sheette bu verileri saklıyorum .. buraya kadar sorun cıkmıyor...
sonra aynı userformu cagırdıgımda sheetten gerekli verileri cekerek textboxlarda onları gosteriyor. bu durumda kod hata veriyor .. cunku worksheetten cekerken verileri sayı algılamıyor ve "sadece sayısal degerler girebilirsiniz" msgı cıkıyor. hata vermemesi icin worksheetten cagırırken nasıl sayısal tanımlatabilirim?
Textbox1 = CDbl(TextBox1) denedim olmadı.
sanırım basından beri sorun da burdaydı..cunku o userformda bazı textboxlar bos bırakılmıssa ikinci kez cagırıldıgında onları bosluk yani "" atıyor ve sistem de bunu numeric kabul etmiyor tabi..

koddan else den sonraki sadece tamsyı girebilirsiniz kısmını kaldırdım sanırım oldu.
 
Son düzenleme:
Üst