• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
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
 
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
 
evet sanırım elim takılıp bosluk falan atıyordum :) cok tesekkur ederim..
 
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
 
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:
Geri
Üst