cems
Altın Üye
- Katılım
- 2 Eylül 2005
- Mesajlar
- 2,581
- Excel Vers. ve Dili
- office 2010 tr 32bit
Kodları ekteki örneğin altında birebir aynı olarak verildiği gibi ;
Bir userform üzerinden kişi detayı yaparken textboxlardan biri tc kimlik doğrulama yapıyor.
Kaydederken algoritmayı kontrol ederek doğru veya yanlış diyor, kayda ( sonradan düzeltmek üzere ) devam edip bitiriyor. Buraya kadar normal.
Ancak userform üzerindeki sil tuşu kullanıldığında aynı kodlar typ mismatch13 hatası vererek duruyor, ayrıca hücrede 11 sayı olmadığında uyaran msgbox da yükseliyor.
Satırın silinirken tc kontrol kodlarına takılmaması ve msgboxun da silme esnasında yukselmemesi için nasıl bir düzeltme yapmam gerek ?
Sayfa1in olayında yazan kodlar
Userform kodları
Bir userform üzerinden kişi detayı yaparken textboxlardan biri tc kimlik doğrulama yapıyor.
Kaydederken algoritmayı kontrol ederek doğru veya yanlış diyor, kayda ( sonradan düzeltmek üzere ) devam edip bitiriyor. Buraya kadar normal.
Ancak userform üzerindeki sil tuşu kullanıldığında aynı kodlar typ mismatch13 hatası vererek duruyor, ayrıca hücrede 11 sayı olmadığında uyaran msgbox da yükseliyor.
Satırın silinirken tc kontrol kodlarına takılmaması ve msgboxun da silme esnasında yukselmemesi için nasıl bir düzeltme yapmam gerek ?
Sayfa1in olayında yazan kodlar
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range(["g:g"])) Is Nothing Then Exit Sub
If Len(Target) <> 11 Then
MsgBox "TC Kimlik numarası 11 Rakamdan oluşmalıdır.", vbCritical, "Hatalı !" 'X
'Target.Text = ""
Exit Sub
End If
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(Target, 1, 1)
TC2 = Mid(Target, 2, 1)
TC3 = Mid(Target, 3, 1)
TC4 = Mid(Target, 4, 1)
TC5 = Mid(Target, 5, 1)
TC6 = Mid(Target, 6, 1)
TC7 = Mid(Target, 7, 1)
TC8 = Mid(Target, 8, 1)
TC9 = Mid(Target, 9, 1)
TC10 = Mid(Target, 10, 1)
TC11 = Mid(Target, 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
MsgBox Target & " Geçerli TC kimlik numarası", vbInformation, "Bilgilendirme !"
Else
MsgBox Target & " Geçersiz TC kimlik numarası", vbExclamation, "Dikkat !"
End If
End Sub
Userform kodları
Kod:
Private Sub CommandButton1_Click()
son = Cells(65536, "A").End(xlUp).Row + 1
Cells(son, "a") = TextBox1
'Cells(son, "b") = TextBox34 'yeni veri kaydet
'Cells(son, "c") = TextBox35
'Cells(son, "d") = TextBox36
'Cells(son, "e") = TextBox37 'yeni veri kaydet
'Cells(son, "f") = TextBox38
Cells(son, "g") = TextBox2
End Sub
Private Sub CommandButton2_Click()
Sheets("sayfa1").Select
Dim cevap
Dim i
cevap = MsgBox("Seçili Kaydı Silmek istediğinizden Eminmisiniz ? Bu işlem geri alınamaz !! ", vbYesNo + vbQuestion, " Veri siliniyor.....")
If cevap = vbYes Then
Selection.EntireRow.Delete
End If
Range("A1").Select
MsgBox "Verileriniz geri alınamaz şekilde Silindi. Hata sonucu sildiyseniz tekrar yeni veri olarak girmeniz gerek.", , "Veri silindi"
'CommandButton19_Click
TextBox1 = ""
TextBox2 = ""
ThisWorkbook.Save
End Sub
