Sayfalar Arası Veri Çekme

1 2
21/10/2023, 21:59

mert_0671

(21/10/2023, 21:27)atoykan yazdı: 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

hocam evet zor bir çalışma yardımlarınız için çok teşekkürler. Makro sanırım TC kimlik numaralarının ilk iki sayısı ve son iki sayısını ve ismin ilk iki harfini eşleştirip verileri getiriyor. Buna ilaveten şu kriteride ekleyemeyizmi. İsimdeki ilk iki harften sonra isimde geriye kalan yıldız karakterini saydırıp aranan veri ile hangisi uyuşuyorsa onu getirsin.
Örneğin böyle bir veride 57*******62 ER*** 57416689262 ERDEMİR AYCAN
57*******62 ER***** kimlik numaralarının ilk iki ve son iki sayısı ve ismin ilk iki harfi aynı olduğu için ilk bulduğunu getiriyor. isimlerdeki "ER" harfinden sonra gelen yıldızları saydırıp aranan isimle uzunluk olarak hangisi uyuşuyorsa ona göre verileri getirebilsek sorun büyük olasılıkla çözülür. Bu dediğimi yapmaya çok uğraştım ama bir türlü çözemedim
22/10/2023, 02:36

feraz

Bir modül ekleyip alttaki kodu çalıştırın.
Koddaki bozuk Tr karakteri düzeltin sayfa adındaki.
ilk mesajınızdaki dosyaya göre yapıldı ve son mesajınızdaki gibi ismin uzunluğu ve tc nin ilk 2 ve son 2 olayı kriter alındı.

Bence yine karışıklık olur Soyad kritere girmediği için.BİRLEŞTİRME sayfasına ismin yanına soyadda ekleyip yıldızlasaydınız hata olmayabilirdi sanıyorum.

PHP Kod:
Dim dic As Object
    Dim son 
As LongAs Long
    Dim Tc 
As StringAdSoYad As StringTcYildiz As StringAdYildiz As String
    Dim AdTcTam 
As String
    Dim sh_Birlestirme 
As Worksheetsh_GenelListe As Worksheet
    
    Set sh_Birlestirme 
ThisWorkbook.Worksheets("BÝRLEÞTÝRME")
    
Set sh_GenelListe ThisWorkbook.Worksheets("GENEL LÝSTE")
    
Set dic CreateObject("Scripting.Dictionary")
    
    
sh_Birlestirme.Range("C2:D" Rows.Count).ClearContents
    With sh_GenelListe
        son 
= .Cells(Rows.Count1).End(3).Row
        
If son 2 Then GoTo sonSub
        
For 2 To son
            Tc 
= .Cells(i2).Value
            AdSoYad 
= .Cells(i3).Value
            TcYildiz 
Left(Tc2) & "*******" Right(Tc2)
            
AdYildiz Left(Split(AdSoYad" ")(0), 2) & Application.Rept("*"Len(Split(AdSoYad" ")(0)) - 2)
            
dic(TcYildiz "||" AdYildiz) = Array(TcAdSoYad)
        
Next
    End With
    
    i 
2
    With sh_Birlestirme
        son 
= .Cells(Rows.Count1).End(3).Row
        
If son 2 Then GoTo sonSub
        
For 2 To son
            AdTcTam 
= .Cells(i"A").Value "||" & .Cells(i"B").Value
            
.Cells(i"C").Value dic(AdTcTam)(0)
            .
Cells(i"D").Value dic(AdTcTam)(1)
        
Next
    End With
sonSub
:
    
Set dic NothingSet sh_Birlestirme NothingSet sh_GenelListe Nothing 
22/10/2023, 02:49

feraz

Alttaki for döngüsüne dic.existst eklemeyi unuttum hata vermemesi için.
Kod hata verirse eklenir ikinci döngüdeki For i = 2 To son bu satırın üstüne on error resume next eklenebilinir.

Üstad bunları hapabileceğini umuyorum bayağıdır Vba ile uğraşıyon
22/10/2023, 11:18

mert_0671

(22/10/2023, 02:49)feraz yazdı: Alttaki for döngüsüne dic.existst eklemeyi unuttum hata vermemesi için.
Kod hata verirse eklenir ikinci döngüdeki For i = 2 To son bu satırın üstüne on error resume next eklenebilinir.

Üstad bunları hapabileceğini umuyorum bayağıdır Vba ile uğraşıyon Teşekkürler hocam ilk etapta hata verdi sonra Alttaki for döngüsüne dic.existst ekleyince çalıştı. Teşekkürler yardımlarınız için
22/10/2023, 11:44

feraz

(22/10/2023, 11:18)mert_0671 yazdı:
(22/10/2023, 02:49)feraz yazdı: Alttaki for döngüsüne dic.existst eklemeyi unuttum hata vermemesi için.
Kod hata verirse eklenir ikinci döngüdeki For i = 2 To son bu satırın üstüne on error resume next eklenebilinir.

Üstad bunları hapabileceğini umuyorum bayağıdır Vba ile uğraşıyon Teşekkürler hocam ilk etapta hata verdi sonra Alttaki for döngüsüne dic.existst ekleyince çalıştı. Teşekkürler yardımlarınız için

Rica ederim,kolay gelsin.

Set dic = CreateObject("Scripting.Dictionary")

Bunun altına
dic.comparemode=1
Yazarsanız harf duyarlılığı sorun olmaz diye biliyorum yani küçük yada büyük yazılınca.
22/10/2023, 12:43

mert_0671

(22/10/2023, 11:44)feraz yazdı:
(22/10/2023, 11:18)mert_0671 yazdı:
(22/10/2023, 02:49)feraz yazdı: Alttaki for döngüsüne dic.existst eklemeyi unuttum hata vermemesi için.
Kod hata verirse eklenir ikinci döngüdeki For i = 2 To son bu satırın üstüne on error resume next eklenebilinir.

Üstad bunları hapabileceğini umuyorum bayağıdır Vba ile uğraşıyon Teşekkürler hocam ilk etapta hata verdi sonra Alttaki for döngüsüne dic.existst ekleyince çalıştı. Teşekkürler yardımlarınız için

Rica ederim,kolay gelsin.

Set dic = CreateObject("Scripting.Dictionary")

Bunun altına
dic.comparemode=1
Yazarsanız harf duyarlılığı sorun olmaz diye biliyorum yani küçük yada büyük yazılınca.

Teşekkürler hocam hepsi büyük harf verilerin bunuda ek bilgi olarak kaydettim teşkkürler
1 2