• DİKKAT

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

giriş kısıtlama

Katılım
21 Ocak 2005
Mesajlar
181
merhaba

textboxta sadece 17 karakterli bir giriş yapılmasını
ve bunun
ilk beşi sadece harf
sonraki iki ad. sadece rakam
sonraki iki ad. sadece harf
sonraki bir ad. hem harf hemde rakam
sonraki bir adet sadece harf
ve son altı ad sadece rakam girmem gerekiyor
bunu yapabilirmiyiz
teşekkürler
 
Aşağıdaki kodu deneyin.

[vb:1:bcfa12e3d6]Private Sub TextBox1_Change()
uz = Len(TextBox1)
par = Right(TextBox1, 1)
If uz < 6 And par Like "[0-9]" Then SendKeys "{BS}"
If 5 < uz And uz < 8 And IsNumeric(par) = False Then SendKeys "{BS}"
If 7 < uz And uz < 10 And par Like "[0-9]" Then SendKeys "{BS}"
If uz = 11 And par Like "[0-9]" Then SendKeys "{BS}"
If 11 < uz And uz < 18 And IsNumeric(par) = False Then SendKeys "{BS}"
If uz > 17 Then SendKeys "{BS}"
End Sub
[/vb:1:bcfa12e3d6]
 
levent bey verdiğiniz kodları girdim calışıyor fakat yazıldıktan sonra araya girilip delete silindiği zaman aralara başka karakter yazabilmekteyiz
 
Aradan silinen değer karakterlerin kaymasına neden olduğundan istediğiniz şekilde bir kontrol yazmak çok kolay değil, çok uzun kodlar yazmak gerekir. Bunun yerine kodun en altına aşağıdaki gibi bir satır ekleyerek textboxu kilitleyebilirsiniz.

if uz=17 then textbox1.enabled=false
 
peki levent bey textboxa sadece 17 karakter girmeyi nasıl yapabilirim yani ne olaltı nede 18 karakter girilebilsin
 
En fazla 17 karakter için userforma aşağıdaki kodu yazın, veya texboxın properties penceresindeki maxlength özelliğine 17 yazın.

[vb:1:155c86ceff]Private Sub UserForm_Initialize()
TextBox8.MaxLength = 17
End Sub
[/vb:1:155c86ceff]

17 karakter az iken değerlendirmeyi ancak textboxtan ayrıldığınızda yapabilirsiniz, bunun içinde aşağıdaki gibi bir kod kullanılabilir, aynı kodu örneğin bir commandbuttonada yazabilirsiniz.

[vb:1:155c86ceff]Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1) < 17 Then MsgBox "veri girişiniz eksiktir"
End Sub
[/vb:1:155c86ceff]
 
levent bey yanlışmı yapıyorum bilmiyorum ama
17 karakterden az ile geciş yaparken uyarıyı veriyor ama yinede geciyor
 
Selamlar,

Koda aşağıdaki eklemeyi yaparsanız istediğiniz olur.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1) < 17 Then MsgBox "veri girişiniz eksiktir"
Cancel=True
End Sub
 
Birde aşağıdaki şekilde deneyiniz.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1) < 17 Then
MsgBox "Eksik veri girişi yaptınız.Lütfen kontrol ediniz.", vbInformation
Cancel = True
Else
Cancel = False
End If
End Sub
 
Eğer uyarı vermesini istemiyorsanız kısaca aşağıdaki gibide kullanabilirsiniz.

[vb:1:eba1d3bce5]Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1) < 17 Then Cancel = True
End Sub
[/vb:1:eba1d3bce5]
 
Geri
Üst