Çözüldü Textbox enter ile TC kontrol ve kaydet

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Sayfanın D3 : D100 aralığında hücreye tıklama ile userform açılıyor.
Açılan userformda da bir adet textbox var.Yapmak istediğim şu:
Hangi hücrede tıkladıysam açılan userformda textboxa veri girip enter dediğim zaman
1 - Aynı hücreye yazacak.
2 - Doğru T.C Kimlik no (doğru ve 11 hane girilmiş ve doğru ise kayıt edecek Userform kapanacak.
2 - T.C Kimlik Kontrolü yapacak. Fazla eksik ya da yanlış yazdığı zaman da kayıt yapmayarak uyarı verecek. Userform kapanmayacak.

Rica etsem yardımcı olabilir misiniz?
 

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
Textbox'ta enter tuşuyla işlem yaptırmayı bulamadım. Ancak userforma bir adet Label ekleyip (Label1) aşağıdaki kodları userforma kaydedince isteğinize yakın bir sonuç elde edebildim:

PHP:
Private Sub TextBox1_Change()
If Len(TextBox1) < 11 Or Len(TextBox1) > 11 Then
    Label1.ForeColor = vbRed
    Label1.Caption = "TC kimlik numarası 11 haneli olmalıdır"
Else
    Label1.Caption = ""

    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.Value, 1, 1)
    TC2 = Mid(TextBox1.Value, 2, 1)
    TC3 = Mid(TextBox1.Value, 3, 1)
    TC4 = Mid(TextBox1.Value, 4, 1)
    TC5 = Mid(TextBox1.Value, 5, 1)
    TC6 = Mid(TextBox1.Value, 6, 1)
    TC7 = Mid(TextBox1.Value, 7, 1)
    TC8 = Mid(TextBox1.Value, 8, 1)
    TC9 = Mid(TextBox1.Value, 9, 1)
    TC10 = Mid(TextBox1.Value, 10, 1)
    TC11 = Mid(TextBox1.Value, 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 And mod2 = TC11 Then
    ActiveCell = TextBox1.Value
    ActiveCell.Select
    Unload Me
    Else
    MsgBox Target & " Geçersiz TC kimlik numarası", vbExclamation, "Dikkat !"
    End If
End If
End Sub
TC kimlik kontrol kodları aşağıdaki sayfadan (sayın hoguz2'den) alıntıdır:

https://www.excel.web.tr/threads/t-c-kimlik-no-alani-kontrolue.165430/
 
Katılım
7 Ağustos 2019
Mesajlar
28
Excel Vers. ve Dili
16.0 - Türkçe -- Office 365
Sayfanın D3 : D100 aralığında hücreye tıklama ile userform açılıyor.
Açılan userformda da bir adet textbox var.Yapmak istediğim şu:
Hangi hücrede tıkladıysam açılan userformda textboxa veri girip enter dediğim zaman
1 - Aynı hücreye yazacak.
2 - Doğru T.C Kimlik no (doğru ve 11 hane girilmiş ve doğru ise kayıt edecek Userform kapanacak.
2 - T.C Kimlik Kontrolü yapacak. Fazla eksik ya da yanlış yazdığı zaman da kayıt yapmayarak uyarı verecek. Userform kapanmayacak.

Rica etsem yardımcı olabilir misiniz?
Merhaba.
TC kimlik numaralarının doğruluğu ile sadece 11 hane olması yeterli mi? Eğer doğruluğu dediğiniz farklı bir şey ise nereden kontrol edeceksiniz, elinizdeki başka kayıtlarla mı karşılaştırılacak yoksa MERNİS gibi bir siteden çekip kontrol etmesini istiyorsunuz ?
 

erd5334

Altın Üye
Katılım
26 Nisan 2012
Mesajlar
123
Excel Vers. ve Dili
excel 365
Altın Üyelik Bitiş Tarihi
01-12-2026
Textbox'ta enter tuşuyla işlem yaptırmayı bulamadım. Ancak userforma bir adet Label ekleyip (Label1) aşağıdaki kodları userforma kaydedince isteğinize yakın bir sonuç elde edebildim:

PHP:
Private Sub TextBox1_Change()
If Len(TextBox1) < 11 Or Len(TextBox1) > 11 Then
    Label1.ForeColor = vbRed
    Label1.Caption = "TC kimlik numarası 11 haneli olmalıdır"
Else
    Label1.Caption = ""

    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.Value, 1, 1)
    TC2 = Mid(TextBox1.Value, 2, 1)
    TC3 = Mid(TextBox1.Value, 3, 1)
    TC4 = Mid(TextBox1.Value, 4, 1)
    TC5 = Mid(TextBox1.Value, 5, 1)
    TC6 = Mid(TextBox1.Value, 6, 1)
    TC7 = Mid(TextBox1.Value, 7, 1)
    TC8 = Mid(TextBox1.Value, 8, 1)
    TC9 = Mid(TextBox1.Value, 9, 1)
    TC10 = Mid(TextBox1.Value, 10, 1)
    TC11 = Mid(TextBox1.Value, 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 And mod2 = TC11 Then
    ActiveCell = TextBox1.Value
    ActiveCell.Select
    Unload Me
    Else
    MsgBox Target & " Geçersiz TC kimlik numarası", vbExclamation, "Dikkat !"
    End If
End If
End Sub
TC kimlik kontrol kodları aşağıdaki sayfadan (sayın hoguz2'den) alıntıdır:

https://www.excel.web.tr/threads/t-c-kimlik-no-alani-kontrolue.165430/
yusuf hocamın paylaştığı koda ek olarak enter tuşu için şöyle birşey kullanılabilir.

Kod:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
If Len(TextBox1) < 11 Or Len(TextBox1) > 11 Then
Else

    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.Value, 1, 1)
    TC2 = Mid(TextBox1.Value, 2, 1)
    TC3 = Mid(TextBox1.Value, 3, 1)
    TC4 = Mid(TextBox1.Value, 4, 1)
    TC5 = Mid(TextBox1.Value, 5, 1)
    TC6 = Mid(TextBox1.Value, 6, 1)
    TC7 = Mid(TextBox1.Value, 7, 1)
    TC8 = Mid(TextBox1.Value, 8, 1)
    TC9 = Mid(TextBox1.Value, 9, 1)
    TC10 = Mid(TextBox1.Value, 10, 1)
    TC11 = Mid(TextBox1.Value, 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 And mod2 = TC11 Then
    ActiveCell = TextBox1.Value
    ActiveCell.Select
    Unload Me
    Else
    MsgBox " Geçersiz TC kimlik numarası", vbExclamation, "Dikkat !"
    End If
End If
End If

End Sub
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Yusuf abi Teşekkür ederim.
Sağ Ol
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Sayın erd5334
Mesajınızı görmedim. Özür dilerim. Yardımınız için teşekkür ederim.
 
Üst