TEXTBOX VERİ GİRİŞ SINIRI HK.

bkk

Altın Üye
Katılım
30 Aralık 2019
Mesajlar
186
Excel Vers. ve Dili
Ofis 2019
Altın Üyelik Bitiş Tarihi
06-12-2025
Merhabalar,

Ekte bulunan Excel çalışma kitabının aşağıdaki kuralları sağlamasını istiyorum yardımcı olabilir misiniz;
-Textbox1 sarı ile işaretli satırda bulunan değerlerin girişini kabul etmeli, aynı zamanda metinsel karakter kabul etmemeli (nokta ve virgül hariç),
-Textbox2 sarı ile işaretli sütunda bulunan değerlerin girişini kabul etmeli, aynı zamanda metinsel karakter kabul etmemeli (nokta ve virgül hariç),

Teşekkür ederim,
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sadece sarı alanlardaki değerlere izin vereceği için ekstradan sayı kontrolü yaptırmadım.

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    Dim c As Range
    
    Set c = [A1:A20].Find(TextBox1, , xlValues, xlWhole)
    If c Is Nothing Then
        MsgBox "Sadece A1:A20 aralığındaki verileri girebilirsiniz."
        TextBox1 = ""
        Exit Sub
    End If
    
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    Dim c As Range
    
    Set c = [B1:J1].Find(TextBox2, , xlValues, xlWhole)
    If c Is Nothing Then
        MsgBox "Sadece B1:J1 aralığındaki verileri girebilirsiniz."
        TextBox2 = ""
        Exit Sub
    End If
    
End Sub
 
  • Beğen
Reactions: bkk

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Ömer bey yanıtlamış.
Sadece rakam girişine örnek ise :

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    If Not IsNumeric(TextBox1.Value) Then
        MsgBox "Sadece Rakamlara İzin Verilir...."
        Cancel = True
    End If
    
End Sub
 
  • Beğen
Reactions: bkk

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Bu da farklı bir alternatif olsun.

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txt_Sinir "A1:A20", textbox1
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    txt_Sinir "B1:J1", textbox2
End Sub

Sub txt_Sinir(Alan As String, txt As textbox)
    Dim c As Range
    Set c = Range(Alan).Find(txt, , xlValues, xlWhole)
    If c Is Nothing Then
        MsgBox "Sadece " & Alan & "aralığındaki verileri girebilirsiniz."
        txt = ""
    End If
End Sub
 
  • Beğen
Reactions: bkk

bkk

Altın Üye
Katılım
30 Aralık 2019
Mesajlar
186
Excel Vers. ve Dili
Ofis 2019
Altın Üyelik Bitiş Tarihi
06-12-2025
Cevaplarınız için ve vakit ayırdığınız için ayrı ayrı teşekkür ediyorum,
Her örneği inceleyip uygun olanı kullanacağım :)
-Bir ufak sorum şu alacak; nokta ve virgül toleransını nasıl sağlayabilirim?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Hem sadece belirttiğiniz alandaki rakamlar olsun ve hem de virgül kullanılsın biraz mantıksız olmuyor mu?
Eğer alandaki rakamlarda virgül varsa zaten kullanabilirsiniz, yoksa kullanamazsınız. Benim ve sayın Ömer'in kodları bu mantıkladır.
 
  • Beğen
Reactions: bkk

bkk

Altın Üye
Katılım
30 Aralık 2019
Mesajlar
186
Excel Vers. ve Dili
Ofis 2019
Altın Üyelik Bitiş Tarihi
06-12-2025
Hem sadece belirttiğiniz alandaki rakamlar olsun ve hem de virgül kullanılsın biraz mantıksız olmuyor mu?
Eğer alandaki rakamlarda virgül varsa zaten kullanabilirsiniz, yoksa kullanamazsınız. Benim ve sayın Ömer'in kodları bu mantıkladır.
Profesyonel bakış açısında haklısınız acemiliğime verin , aslında amacım yeri gelmişken o kodlamayı da görebilmek, izninizle sorumu şu şekilde değiştirebilir miyim;" Sadece sayısal veri girdiğim textboxlarda ve nokta virgül toleransını nasıl sağlayabilirim?"
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

toleleranstan ne amaçladığınızı anlamadım ama rakamı nokta ya da virgüllü girişten kastediyorsanız benim verdiğim örnekte zaten buna izin veriyor, yeter ki nokta ve virgül yerinde olsun :)
 
  • Beğen
Reactions: bkk

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
Alternatif olarak, yazarken kontrol isterseniz aşağıdaki gibi deneyebilirsiniz.

Kod:
Private Sub TextBox1_Change()
If IsNumeric(TextBox1) = False Then CreateObject("WScript.Shell").SendKeys "{bs}", True
End Sub

Private Sub TextBox2_Change()
If IsNumeric(TextBox2) = False Then CreateObject("WScript.Shell").SendKeys "{bs}", True
End Sub
 
  • Beğen
Reactions: bkk

bkk

Altın Üye
Katılım
30 Aralık 2019
Mesajlar
186
Excel Vers. ve Dili
Ofis 2019
Altın Üyelik Bitiş Tarihi
06-12-2025
Elinize, Emeğinize sağlık , Teşekkürler.
 
Üst