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
 

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
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]
 
Katılım
21 Ocak 2005
Mesajlar
181
levent bey verdiğiniz kodları girdim calışıyor fakat yazıldıktan sonra araya girilip delete silindiği zaman aralara başka karakter yazabilmekteyiz
 

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
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
 
Katılım
21 Ocak 2005
Mesajlar
181
peki levent bey textboxa sadece 17 karakter girmeyi nasıl yapabilirim yani ne olaltı nede 18 karakter girilebilsin
 

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
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]
 
Katılım
21 Ocak 2005
Mesajlar
181
levent bey yanlışmı yapıyorum bilmiyorum ama
17 karakterden az ile geciş yaparken uyarıyı veriyor ama yinede geciyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

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
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]
 
Üst