Değerli forum üyeleri paylaşmış dolduğum çalışmamda BİRLEŞTİRME isimli sayfamın "A" sütununda yıldızlı TC kimlik numaraları "B" sütununda ise bu kimlik numarasın ait sadece yıldızlı isim bulunmaktadır. Bu verilerin tam karşılıkları GENEL LİSTE isimli sayfamda bulunmaktadır. Yapmak istediiğim bu yıldızlı verilerin karşılıklarını BİRLEŞTİRME isimli sayfama makro ile çekebilmektedir. Çalışmamdaki veriler gerçek dışıdır. Veri sayım 5 bin satırdır.
Aşağıdaki kodu dener misiniz?
Kod:
Sub KimlikEslestir()
Dim GenelListe As Worksheet
Dim Birlestirme As Worksheet
Dim GenelListeRow As Range
Dim BirlestirmeRow As Range
Dim TC As String
Dim AdSoyad As String
Dim i As Long, j As Long
Set GenelListe = ThisWorkbook.Sheets("Genel Liste")
Set Birlestirme = ThisWorkbook.Sheets("Birleştirme")
For i = 2 To GenelListe.Cells(Rows.Count, 2).End(xlUp).Row
TC = GenelListe.Cells(i, 2).Value
AdSoyad = GenelListe.Cells(i, 3).Value
TCF = Left(TC, 2) & "*******" & Right(TC, 2)
AdSoyadF = Left(AdSoyad, 2) & "*"
For j = 2 To Birlestirme.Cells(Rows.Count, 1).End(xlUp).Row
If Birlestirme.Cells(j, 1).Value = TCF And Left((Birlestirme.Cells(j, 2).Value), 3) = AdSoyadF Then
Cells(j, 3).Value = TC
Cells(j, 4).Value = AdSoyad
Exit For
End If
Next j
Next i
End Sub
(21/10/2023, 17:38)atoykan yazdı: Aşağıdaki kodu dener misiniz?
Kod:
Sub KimlikEslestir()
Dim GenelListe As Worksheet
Dim Birlestirme As Worksheet
Dim GenelListeRow As Range
Dim BirlestirmeRow As Range
Dim TC As String
Dim AdSoyad As String
Dim i As Long, j As Long
Set GenelListe = ThisWorkbook.Sheets("Genel Liste")
Set Birlestirme = ThisWorkbook.Sheets("Birleştirme")
For i = 2 To GenelListe.Cells(Rows.Count, 2).End(xlUp).Row
TC = GenelListe.Cells(i, 2).Value
AdSoyad = GenelListe.Cells(i, 3).Value
TCF = Left(TC, 2) & "*******" & Right(TC, 2)
AdSoyadF = Left(AdSoyad, 2) & "*"
For j = 2 To Birlestirme.Cells(Rows.Count, 1).End(xlUp).Row
If Birlestirme.Cells(j, 1).Value = TCF And Left((Birlestirme.Cells(j, 2).Value), 3) = AdSoyadF Then
Cells(j, 3).Value = TC
Cells(j, 4).Value = AdSoyad
Exit For
End If
Next j
Next i
End Sub
Hocam cevap için çok teşekkürler 3400 satırlık veride denedim 61 satır boş getirdi.
40*******32 AB****** ZE**** 40667226632 ABDULMECİT ŞEMSANOĞLU
40*******32 AB******** ŞE********
bunun gibi hatalarda var üstteki veriye getirdiği veri alttaki veriye ait. Üstteki verinin açılımıda ABDULLAH ZENGİN OLACAK TC Kimlik Numarasıda örneğin gerçeğini yazmamak adına 40456987432 olacaktı. Tabiki bir çoğunuda doğru getirdi.
69*******44 ME**** 69545548944 MERYEM EROL (buraya MEHMET BAŞARAN VE TC KİMLİK NUMARASI GELMESİ LAZIM)
69*******44 ME**** (BURAYADA MERYEM EROL VE TC KİMLİK NUMARASI GELMESİ LAZIM) 61 SATIRLIK boş verilerin hepsi bu yüzden boş gelmiş hocam bi kriter daha eklenirse bu sorun çözülecek sanırım.
57*******62 ER*** 57416689262 ERDEMİR AYCAN bu veride alt taraftakine gelmesi gerekirken buraya gelmiş buranın verisinide getirmemiş
57*******62 ER*****
Yani arkadaşım o kadar hata olacak, TCKN'nin başı var sonu var gerisi yok bu ikisi tutanları alıyor isimdeki iki harfi kontrol ediyor uyanı yazıyor. Çok mantıklı bir çalışma değil istediniz diye olabilecek kodu yazdım