TextBox harf silme

Metin Kutucuğu. Bir programcının olmazsa olmazlarındandır.

TextBox harf silme

İleti#1)  ajan83 » 23 Ağu 2018 00:05

Merhaba,

TextBox a sadece rakam girilmesini istiyorum.
Para birimi olarak tanımlı olacak.

Kod: Tümünü seç
Private Sub TextBox8_Change()
TextBox8.Text = Replace(TextBox8.Text, "a", "")
TextBox8.Text = Replace(TextBox8.Text, "b", "")
TextBox8.Text = Replace(TextBox8.Text, "c", "")
TextBox8.Text = Replace(TextBox8.Text, "ç", "")
TextBox8.Text = Replace(TextBox8.Text, "d", "")
TextBox8.Text = Replace(TextBox8.Text, "e", "")
TextBox8.Text = Replace(TextBox8.Text, "f", "")
TextBox8.Text = Replace(TextBox8.Text, "g", "")
TextBox8.Text = Replace(TextBox8.Text, "ð", "")
TextBox8.Text = Replace(TextBox8.Text, "h", "")
TextBox8.Text = Replace(TextBox8.Text, "ý", "")
TextBox8.Text = Replace(TextBox8.Text, "i", "")
TextBox8.Text = Replace(TextBox8.Text, "j", "")
TextBox8.Text = Replace(TextBox8.Text, "k", "")
TextBox8.Text = Replace(TextBox8.Text, "l", "")
TextBox8.Text = Replace(TextBox8.Text, "m", "")
TextBox8.Text = Replace(TextBox8.Text, "n", "")
TextBox8.Text = Replace(TextBox8.Text, "o", "")
TextBox8.Text = Replace(TextBox8.Text, "ö", "")
TextBox8.Text = Replace(TextBox8.Text, "p", "")
TextBox8.Text = Replace(TextBox8.Text, "r", "")
TextBox8.Text = Replace(TextBox8.Text, "s", "")
TextBox8.Text = Replace(TextBox8.Text, "þ", "")
TextBox8.Text = Replace(TextBox8.Text, "t", "")
TextBox8.Text = Replace(TextBox8.Text, "u", "")
TextBox8.Text = Replace(TextBox8.Text, "ü", "")
TextBox8.Text = Replace(TextBox8.Text, "v", "")
TextBox8.Text = Replace(TextBox8.Text, "y", "")
TextBox8.Text = Replace(TextBox8.Text, "z", "")
TextBox8.Text = Replace(TextBox8.Text, "w", "")
TextBox8.Text = Replace(TextBox8.Text, "q", "")
TextBox8.Text = Replace(TextBox8.Text, "x", "")
End Sub
Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox8 = Format(TextBox8.Text, "Currency")
End Sub


Bu şekilde bir çözüm var ama daha kısa ve basit bir çözümü yok mu?
Kullanıcı avatarı
ajan83
Siteye Alışmış
 
Adı Soyadı:Acun CAN
Kayıt: 04 Nis 2014 15:07
Konum: İZMİR
Meslek: SİGORTA
Yaş: 35
İleti: 119
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İZMİR / KARŞIYAKA

Cevap: TextBox harf silme

İleti#2)  metehan8001 » 23 Ağu 2018 00:13

Bu kod ile Textboxa sadece rakam ve virgül girebilirsiniz.
Kod: Tümünü seç
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


Alternatif 2
Kod: Tümünü seç
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)   
   If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Or KeyAscii <> 44 Then
        MsgBox"Sayı girmelisiniz"
    End If
End Sub


Alternatif 3

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


Alternatif

Kod: Tümünü seç
Private Sub TextBox1_Change()
If Not IsNumeric(TextBox1.Text) Then
Beep
MsgBox "Numerik olmayan bir değer girdiniz"
End If
End Sub
Kullanıcı avatarı
metehan8001
Siteye Alışmış
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 10:30
İleti: 393
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

Cevap: TextBox harf silme

İleti#3)  katip16487 » 05 Ekm 2018 11:42

Peki bu kodları sayfada yer alan birden fazla TextBox veya tüm TextBox'lar için tek bir kod ile yapmamız mümkün mü?

Örneğin, 100 tane TextBox varsa tamamına sadece rakam ve (,) girilmesini saylayabilir miyiz?

Yada TextBox1, 2, 7, 9 nolu TextBox'lara tek bir kod ile bu durumu sağlayabilir miyiz?

Saygılarımla...
Kullanıcı avatarı
katip16487
Yeni Başlamış
 
Adı Soyadı:AHMET REVAN KULA
Kayıt: 18 Nis 2012 22:09
Konum: Konya ili, Ereğli ilçesi, Hacımustafa mahallesi
Meslek: İcra Müdür Yardımcısı
Yaş: 37
İleti: 50
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Konya ili, Ereğli ilçesi, Hacımustafa mahallesi

Cevap: TextBox harf silme

İleti#4)  Ozan İLGÜN » 05 Ekm 2018 14:27

Class1 isminde yeni bir class module ekleyin. İçine bu kodları yazın
Kod: Tümünü seç
Public WithEvents txt As MSForms.TextBox
Private Sub txt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   Select Case KeyAscii
        Case 46
            If InStr(1, txt, ",") > 0 Then KeyAscii = 0
        Case 48 To 57
        Case Else
            KeyAscii = 0
    End Select
End Sub


Userformdaki tüm textboxlarda kullanmak için userform kodunuz bu şekilde olmalı
Kod: Tümünü seç
Option Explicit
Dim arr() As New Class1
Private Sub UserForm_Activate()


Dim i As Integer
Dim c As Control
For i = 0 To Me.Controls.Count - 1
Set c = Me.Controls(i)
If TypeName(c) = "TextBox" Then
'MsgBox c.Name

addevents c, i
End If
Next i

End Sub
Sub addevents(addhandler As Control, i As Integer)
ReDim Preserve arr(0 To i)
        Set arr(i).txt = addhandler
End Sub

Eğer userformdaki tüm textboxlar değilde sadece seçtiğiniz birkaç textboxa uygulayacaksanız userform kodunuz şöyle olmalı
Kod: Tümünü seç
Option Explicit
Dim arr() As New Class1
Private Sub UserForm_Activate()
addevents TextBox1, 0
addevents TextBox3, 1
addevents TextBox7, 2
End Sub
Sub addevents(addhandler As Control, i As Integer)
ReDim Preserve arr(0 To i)
        Set arr(i).txt = addhandler
End Sub

0 1 2 gibi giden kısım textbox ekledikçe artacak.
ozanilgun@mynet.com

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 14:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 32
İleti: 2631
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Forum TextBox

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe