Skip to main content

AccessTr.neT


Sayfalar Arası Veri Çekme

Sayfalar Arası Veri Çekme

Çözüldü #1
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.
.zip veri çekme.zip (Dosya Boyutu: 49,18 KB | İndirme Sayısı: 4)
Cevapla
#2
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

Cevapla
#3
(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.
Cevapla
#4
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.
Cevapla
#5
57*******62 ER*** 57416689262 ERDEMİR AYCAN bu veride alt taraftakine gelmesi gerekirken buraya gelmiş buranın verisinide getirmemiş
57*******62 ER*****
Cevapla
#6
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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task