Diğer Sayfadaki Benzersizleri Bul ve Listele

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
#18 nolu mesajımı revize ettim. Tekrar deneyiniz.
 
Katılım
16 Eylül 2012
Mesajlar
49
Excel Vers. ve Dili
excell 2010
Altın Üyelik Bitiş Tarihi
12-03-2022
S1.Range("C2:C" & S1.Cells(S1.Rows.Count, 3).End(3).Row).RemoveDuplicates Columns:=3, Header:=xlNo

bu satırda hata veriyor hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben paylaştığınız dosyada kodu deneyip sizinle paylaştım. Kod bende çalışıyor.

Kodu hücreler boşken başlık satırını aktarmaması için aşağıdaki gibi düzenlemek daha sağlıklı olacaktır.

C++:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim S1 As Worksheet, S2 As Worksheet, Son As Long

    Set S1 = Sheets("Urunler")
    Set S2 = Sheets("StokGirisleri")

    Application.ScreenUpdating = False
    S1.Range("C2:C" & S1.Rows.Count).ClearContents
    Son = S2.Cells(S2.Rows.Count, 4).End(3).Row
    If Son > 1 Then
        S2.Range("D2:D" & Son).Copy S1.Range("C2")
        S1.Range("C2:C" & S1.Cells(S1.Rows.Count, 3).End(3).Row).RemoveDuplicates Columns:=3, Header:=xlNo
    End If
    Application.ScreenUpdating = True

    Set S1 = Nothing
    Set S2 = Nothing
End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba,

Sayfa2 nin kod bölümüne kopyalayınız.
Kod:
Private Sub Worksheet_Activate()

    Dim S1 As Worksheet, d As Object, i As Long, deg
   
    Set S1 = Sheets("Sayfa1")
    Set d = CreateObject("Scripting.Dictionary")
       
    Application.ScreenUpdating = False

    For i = 2 To S1.Cells(Rows.Count, "A").End(xlUp).Row
        deg = S1.Cells(i, "A")
        If deg <> "" Then
            If Not d.exists(deg) Then
                d.Add deg, Nothing
            End If
        End If
    Next i

    Range("H2:H" & Rows.Count).ClearContents
    Range("H2").Resize(d.Count) = Application.Transpose(d.Keys)

End Sub
Ömer Bey Benzersizleri süzmek için kod ararken yukarıdaki sizin çalışmanızı buldum. Çalışmama uyguladım çalıştı ama ben A sütununun tamamını değil de A6 dan başlayarak süzmesini istedim ama farklı denemelerim (A6:6) hep hata verdi.
Kod:
For i = 2 To S1.Cells(Rows.Count, "A").End(xlUp).Row

        deg = S1.Cells(i, "A")
burada "A" da nasıl bir değişiklik yaparsak istediğim şekilde olur
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Döngünün başlangıcını değiştirip deneyiniz.

For i = 2
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Döngünün başlangıcını değiştirip deneyiniz.

For i = 2
Korhan Bey ilginize teşekkür ederim.
Döngü başlangıcı sizin dediğiniz gibi başlıyor. Nasıl bir değişiklik yapmam gerekir
Benim dosyada araması gereken sütun "M" sütunu
For i = 2 To S1.Cells(Rows.Count, "M6:M").End(xlUp).Row
deg = S1.Cells(i, "M6")

yapıyorum hata veriyor. M6 dan başlaması için Döngü başlangıcı nasıl olması lazım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bazen kendimi sorguluyorum.. Biz neyi yanlış yapıyoruz diye..
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Döngünün başlangıcını değiştirip deneyin ifadesini kullanmıştım. Ayrıca 2 değerini kalın fontlu yapmıştım. Sanıyorum gözünüzden kaçtı.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Döngünün başlangıcını değiştirip deneyin ifadesini kullanmıştım. Ayrıca 2 değerini kalın fontlu yapmıştım. Sanıyorum gözünüzden kaçtı.
Korhan Bey Tekrar özür dilerim.
Ben de aynı şeyi ifade etmeye çalıştım. Normalde döngünün başlangı 2 ile başlıyor. Ben "For i = 3" yaptım olmadı "For i = 1" yaptım olmadı, hatta 2 yi kaldırdım hep hata verdi. Farklı şekilleri denedim olmayınca ve değiştirip deneyin derken acaba başka bir nokta mı denenecek diye size yazmıştım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Döngüyü 6. satırdan başlatmak istiyorsanız 2 değeri yerine 6 yazmalısınız.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Döngüyü 6. satırdan başlatmak istiyorsanız 2 değeri yerine 6 yazmalısınız.
Çok Teşekkür ederim. Sizi meşgul ettim. kusura bakmayın.
Kod konusunda çok iyi değilim. bundan dolayı mantığı düşünemedim.
 
Üst