• DİKKAT

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

textbox da karakter kısıtlaması

  • Konbuyu başlatan Konbuyu başlatan ipkins
  • Başlangıç tarihi Başlangıç tarihi
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.
 
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
 
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
 
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
 
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
 
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
 
İ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
 
Geri
Üst