textbox da karakter kısıtlaması

Katılım
5 Aralık 2004
Mesajlar
130
Excel Vers. ve Dili
Excel 2003 Türkçe
userformumun üzerinde textboxlar var bunlara veri kısıtlaması getirmek istiyorum sadece rakam girişini formda arayıp buldum fakat uzunluğunu bulamadım textbox a tc kimlik numarası girmek istiyorum ama az ve fazla rakam girdiğinde uyarı vermesini istiyorum mesela 11 rakamdan eksikse uyarı versin olabilirmi acaba yardımcı olacak arkadaşlara şimdiden teşekkürler.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Aşağıdaki kodu ilgili yere yapıştırınız.

Private Sub TextBox1_AfterUpdate()
If Len(TextBox1.Text) = 11 Then
TextBox1.Text = Format(TextBox1, "000 000 000 00")
Else
MsgBox "Lütfen 11 krakter sayı giriniz"
UserForm1.TextBox1.Text = Empty
UserForm1.TextBox1.SetFocus
End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,330
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Alternatif olarak TextBox1_Exit olayına aşağıdaki kodu uygulayıp deneyiniz.

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(TextBox1) < 11 Then
    MsgBox "EKSİK KARAKTER GİRİŞİ !" & vbCrLf & "EN AZ 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
    Cancel = True
    ElseIf Len(TextBox1) > 11 Then
    MsgBox "FAZLA KARAKTER GİRİŞİ !" & vbCrLf & "EN FAZLA 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
    Cancel = True
    Else
    Cancel = False
    End If
End Sub
 
Katılım
20 Ekim 2005
Mesajlar
301
Excel Vers. ve Dili
excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
28/06/2023
Merhaba Korhan bey bu kodu dosyamda kullandım .İmleç ilgili textbox da olduğu için çıkış düğme ile formdan çıkış yapamıyorum uyarı mesajı geliyor
veri giriş yapılmamışsa uyarı gelmesini nasıl pasif yapabiliriz.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1) < 11 Then
MsgBox "EKSİK KARAKTER GİRİŞİ !" & vbCrLf & "EN AZ 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
Cancel = True
ElseIf Len(TextBox1) > 11 Then
MsgBox "FAZLA KARAKTER GİRİŞİ !" & vbCrLf & "EN FAZLA 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
Cancel = True
Else
Cancel = False
End If
End Sub
 

Ö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,

TextBox1 <> "" And eklendi.
Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 <> "" And Len(TextBox1) < 11 Then
MsgBox "EKSİK KARAKTER GİRİŞİ !" & vbCrLf & "EN AZ 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
Cancel = True
ElseIf TextBox1 <> "" And Len(TextBox1) > 11 Then
MsgBox "FAZLA KARAKTER GİRİŞİ !" & vbCrLf & "EN FAZLA 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
Cancel = True
Else
Cancel = False
End If
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Alternatif olarak aşağıdaki gibi kullanırsanız TC kimlik numarasının geçerli olup olmadığı da kontrol edilir:

PHP:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 <> "" And Len(TextBox1) < 11 Then
    MsgBox "EKSİK KARAKTER GİRİŞİ !" & vbCrLf & "EN AZ 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
    Cancel = True
ElseIf TextBox1 <> "" And Len(TextBox1) > 11 Then
    MsgBox "FAZLA KARAKTER GİRİŞİ !" & vbCrLf & "EN FAZLA 11 KARAKTER GİREBİLİRSİNİZ.", vbCritical
    Cancel = True
ElseIf IsNumeric(TextBox1.Text) Then
    Dim mod1 As Integer, mod2 As Integer, TC1 As Integer, TC2 As Integer, TC3 As Integer, TC4 As Integer, TC5 As Integer, _
            TC6 As Integer, TC7 As Integer, TC8 As Integer, TC9 As Integer, TC10 As Integer, TC11 As Integer
    TC1 = Mid(TextBox1.Text, 1, 1)
    TC2 = Mid(TextBox1.Text, 2, 1)
    TC3 = Mid(TextBox1.Text, 3, 1)
    TC4 = Mid(TextBox1.Text, 4, 1)
    TC5 = Mid(TextBox1.Text, 5, 1)
    TC6 = Mid(TextBox1.Text, 6, 1)
    TC7 = Mid(TextBox1.Text, 7, 1)
    TC8 = Mid(TextBox1.Text, 8, 1)
    TC9 = Mid(TextBox1.Text, 9, 1)
    TC10 = Mid(TextBox1.Text, 10, 1)
    TC11 = Mid(TextBox1.Text, 11, 1)
    mod1 = ((((TC1 + TC3 + TC5 + TC7 + TC9) * 7) - (TC2 + TC4 + TC6 + TC8)) Mod 10)
    mod2 = ((TC1 + TC2 + TC3 + TC4 + TC5 + TC6 + TC7 + TC8 + TC9 + TC10) Mod 10)
    If mod1 <> TC10 Or mod2 <> TC11 Then
        MsgBox Target & " Geçersiz TC kimlik numarası", vbExclamation, "Dikkat !"
        Cancel = True
    End If
Else
    Cancel = False
End If
End Sub
 
Katılım
20 Ekim 2005
Mesajlar
301
Excel Vers. ve Dili
excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
28/06/2023
İlginiz ve yardımınız için teşekkür ederim sayın Ömer ve Yusuf44 iki kodda çalışıyor. Eski bir konuya can vermiş olduk
 
Üst