• DİKKAT

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

Tekrar eden verileri içeren satırları silen makro

  • Konbuyu başlatan Konbuyu başlatan hopeful
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Ağustos 2006
Mesajlar
134
Excel Vers. ve Dili
2017 Eng
Merhabalar,
A2:AI aralığında veriler bulunmaktadır. Veriler girildikçe satır sayısı dinamik artmaktadır.

Herhangi bir anda çalıştırılacak makro ile, eğer bir satırda; C2:AI aralığında bulunan her hücredeki veri, başka bir satırdaki aynı sütuna denk gelen değerler birebir aynı ise tekrarlı olan tüm satırları silinmesini talep ediyorum.

Örneğin:

Satır 2: A2 = Ali;B2= Veli;C2= Hasan;D2= Gökhan;... AI2 = Rıza
......
Satır 10:A10=Gönül; B10=Hakkı; C10=Hasan;D10= Gökhan ...AI10=Rıza (C10: A10 aralığıdaki tüm veriler 2. satırdaki C2:AI2 verileri ile aynı, satır silinmeli)
Satır 25:A25=Hüsnü;B25=Volkan;C25=Hasan;D25=Gökhan ... AI25=Rıza (C25: A25 aralığıdaki tüm veriler 2. satırdaki C2:AI2 verileri ile aynı, satır silinmeli)

Yardımınızı rica ederim,
 
Son düzenleme:
Merhaba,

Örnekte aynı demişsiniz. Fakat veriler farklı, A2="Ali" A10="Gönül" ?
Yanlış mı yorumlamış da olabilirim.
 
C,D,AI üç sütunda aynı olan verilerin tekrar edenlerini siler.

Kod:
Sub test()
    son = Cells(Rows.Count, 1).End(3).Row

    For i = son To 3 Step -1
        bak = Cells(i, "C").Value & "|" & Cells(i, "D").Value & "|" & Cells(i, "AI").Value
        For ii = i - 1 To 2 Step -1
            bak2 = Cells(ii, "C").Value & "|" & Cells(ii, "D").Value & "|" & Cells(ii, "AI").Value
            If bak = bak2 Then
                Rows(i).Delete
            End If
        Next ii
    Next i

End Sub
 
Merhaba,

Örnekte aynı demişsiniz. Fakat veriler farklı, A2="Ali" A10="Gönül" ?
Yanlış mı yorumlamış da olabilirim.

Ömer bey merhaba,
C kolonundan itibaren veriler aynı olabilir. A , B kolondaki veriler aynı değildir.
Yani, farklı satırlarda C kolonundan AI'ya kadar değerler aynı ise ortak olan satırları komple silsin istiyorum.
Teşekkürler

İyi günler,
 
C,D,AI üç sütunda aynı olan verilerin tekrar edenlerini siler.

Kod:
Sub test()
    son = Cells(Rows.Count, 1).End(3).Row

    For i = son To 3 Step -1
        bak = Cells(i, "C").Value & "|" & Cells(i, "D").Value & "|" & Cells(i, "AI").Value
        For ii = i - 1 To 2 Step -1
            bak2 = Cells(ii, "C").Value & "|" & Cells(ii, "D").Value & "|" & Cells(ii, "AI").Value
            If bak = bak2 Then
                Rows(i).Delete
            End If
        Next ii
    Next i

End Sub

C,D,E,F.... AI'ya kadar verilerin aynı olması durumu sözkonusu.
Cells(i, "k").Value" kodundaki "k" yerine sırasıyla C,D,E..... AI yazarak çoklama yapmam gerekir değil mi?
 
Kod:
Sub test()
    son = Cells(Rows.Count, 1).End(3).Row

    For i = son To 3 Step -1
        bak = Join(Application.Index(Cells(i, "C").Resize(1, 33).Value, 0), "|")
        For ii = i - 1 To 2 Step -1
            bak2 = Join(Application.Index(Cells(ii, "C").Resize(1, 33).Value, 0), "|")
            If bak = bak2 Then
                Rows(i).Delete
                Exit For
            End If
        Next ii
    Next i

End Sub
 
Ömer bey merhaba,
C kolonundan itibaren veriler aynı olabilir. A , B kolondaki veriler aynı değildir.
Yani, farklı satırlarda C kolonundan AI'ya kadar değerler aynı ise ortak olan satırları komple silsin istiyorum.
Teşekkürler

İyi günler,

Alternatif olsun.
Detaylı deneme yapmadım.
Kod:
Sub Coklu_Sil()
   
    Dim d As Object, i As Long, deg As String, k As Range

    Application.ScreenUpdating = False

    Set d = CreateObject("Scripting.Dictionary")

    For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
        deg = Join(Application.Index(Cells(i, "C").Resize(1, 33).Value, 0), "|")
        If Not d.exists(deg) Then
            d.Add deg, Nothing
        Else
            If k Is Nothing Then
                Set k = Rows(i)
            Else
                Set k = Application.Union(k, Rows(i))
            End If
        End If
    Next i
   
    On Error Resume Next
    k.Delete

End Sub
 
Son düzenleme:
Geri
Üst