• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Farklı Verilerle Liste Kontrolü

  • Konbuyu başlatan Konbuyu başlatan toybuklu
  • Başlangıç tarihi Başlangıç tarihi
Katılım
22 Ekim 2009
Mesajlar
151
Excel Vers. ve Dili
2007&2010
Merhaba Üstadlarım Amacım ekteki örnek dosyada Yeni ve AnaData adında 2 sheetim var . AnaDatada Sabit bir barkod datam var. bir macro ile yeni sheetine attığım barkodları AnaData sheetinden kontrol edecek varsa yanlarına bir kolona OK atacak ve yeni sheetteki eşleşen barkodun yanında olan tarihi de OK yazdığı kolonun yanına yazacak..Varsa eşleşmeyenleri olmayanlar sheetinde listeleyecek..

Sonrasında bende dosyayı kaydedip kapatıcam. Yeni sheetine yeni barkod gelince yeni barkodları atıcam yine aynı işlemleri yapacak ancak daha önce OK ve tarih attığım bakolara dokunmayacak onlar aynen kalacak yani OK ve tarih olmaynlardan eşleştirip yanlarına OK ve tarihi atacak bunu makro çalıştırdığımda bu şekilde yapmasını istiyorum..

Şimdiden yardımlarınız için Çok ama Çok teşekkür ederim.

Dosyam Ektedir.
 

Ekli dosyalar

Merhaba, aşağıdaki kodu denermisiniz.
Kod:
Sub toybuklu()
Set s1 = Sheets("AnaDosya")
Set s2 = Sheets("YeniData")
Set s3 = Sheets("Olmayanlar")
    sonA = s1.Range("A" & Rows.Count).End(3).Row
    sonY = s2.Range("A" & Rows.Count).End(3).Row
        On Error Resume Next
            For i = 2 To sonY
                ss = WorksheetFunction.Match(s2.Cells(i, 1), s1.Range("A2:A" & sonA), 0) + 1
                    s1.Cells(ss, 2) = "OK"
                        s1.Cells(ss, 3) = Format(Cells(i, 2), "dd.mm.yyyy")
                        
                        If Not (s2.Cells(i, 1)) = s1.Cells(ss, 1) Then
                    sat = s3.Range("A" & Rows.Count).End(3).Row + 1
                s3.Range("A" & sat) = s2.Cells(i, 1)
            s3.Range("B" & sat) = s2.Cells(i, 2)
        End If
    Next i
End Sub
 
Çok saolun çalışmada kullanacağım kodları bu haliyle şuan ihtiyacımı karşılıyor bunu üzerinden ilerleyip çalışmamamı tamamlamaya çalışacağım takıldığım noktada yardımınızı yeniden isterim. Çok çok saolun... emeğinize sağlık
 
Merhaba tasmed bey;

Ekteki dosyamın içindeki datada düzenleme yaptım . Ana dosya yada aynı barkod numaralarından 2 tane olan kayıtlar var yeni sheestindeki barkodları Anadosyaya yazıyorya ancak aynı barkoddan 2 tane varsa 2 sinede ok ve tarihi atması gerekiyor. Mevcut kodunda sadce bir tanesine ok ve tarih atıyor.

Yani yeni sheetindeki barkoddan AnaDosya sheetinde 2 ve daha fazlaysa hepsine ok ve tarih atmalı.

Umarım yapılabilir bişeydir. teşekkür ederim yardımlarınız için..
 

Ekli dosyalar

Merhaba,
Kod:
Sub aktar()
Set s1 = Sheets("YeniData")
Set s2 = Sheets("AnaDosya")
Set s3 = Sheets("Olmayanlar")
    
    Application.ScreenUpdating = False
    
    sonA = s2.Range("A" & Rows.Count).End(3).Row
    sonY = s1.Range("A" & Rows.Count).End(3).Row
    
        For i = 2 To sonY
            For j = 2 To sonA
                If s1.Cells(i, 1) = s2.Cells(j, 1) Then
                    s2.Cells(j, 2) = "OK"
                        s2.Cells(j, 3) = Format(s1.Cells(i, 2), "dd.mm.yyyy")
                            End If
                                Next j
                                    On Error Resume Next
                                ss = WorksheetFunction.Match(s1.Cells(i, 1), s2.Range("A2:A" & sonA), 0) + 1
                            If Not (s1.Cells(i, 1)) = s2.Cells(ss, 1) Then
                        sat = s3.Range("A" & Rows.Count).End(3).Row + 1
                    s3.Range("A" & sat) = s1.Cells(i, 1)
                s3.Range("B" & sat) = s1.Cells(i, 2)
            End If
        Next i
    Application.ScreenUpdating = True
End Sub
 
Tekrar merhaba tasmed bey yardımlarınız için teşekkürler .

Kodu uyarladım kendi çalışmama ancak şöyle bir sıkıntı var; mesela yeni shetindeki 1. sıradaki kaydı AnaData sheetinden kontrol ederken tüm kayıtları taraıyor şöyle bir sıkıntım oldu benim AnaData sheetimde 100.000 kayıt var yeni shetinede hergün 6-7 bin kayıdı sorgulatıyorum. şimdi her kayıtta 100.000 kayda baktığında çok uzun sürüyor işlem .. AnaDatada aynı barkodlar alt alta olur herzman şöyle birşey olabilirmi kaydı Anadata da bulunca kaydı bulduğu satırdan sonra 100 yada x kayıt daha baksın aynı barkod varsa yazsın yoksa yenidata sheetindeki sonraki kayda geçsin zor bir durum yada macro mantığına aykırı bir durumsa sorun değil. yardımlarınız için çok teşekkür ederim.

Kısacası kaydı buldu ok attı hemen altında yada 10-20 kayıt sonra aynı barkodu yine buldu ok attı sonraki kayda geçsin gibi bişey..
 
Geri
Üst