mükerrer

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,238
Excel Vers. ve Dili
Ofis 2013 Türkçe
Kod:
Sub mükerrersil()
Dim S1 As Worksheet
Dim a As Long
Set S1 = Sheets("Sayfa1")
Application.ScreenUpdating = False
For a = S1.[BD65536].End(3).Row To 4 Step -1
If WorksheetFunction.CountIf(S1.Range("BD4:BD" & a), S1.Cells(a, "BD")) > 1 Then S1.Range("BA:BD").Rows(a).Delete
Next
Application.ScreenUpdating = True
End Sub
Merhabalar Arkadaşlar
Yukarıdaki kodlarda yapılan işi daha hızlı yapacak kodlara ihtiyacım var
yardımcı olan olursa sevinirim
 
Merhaba,
Kod:
Sub Deneme()

    Dim i As Long
    i = Cells(Rows.Count, "BD").End(3).Row
    
    Range("BD4:BD" & i).RemoveDuplicates Columns:=1, Header:=xlNo
    
End Sub
 
Kod:
Sub test()

    Dim rng As Range, silRng As Range, elem
    Set rng = Range("BD4:BD" & Cells(Rows.Count, "BD").End(3).Row)
    Set silRng = Range("BD1")
    
    With CreateObject("Scripting.Dictionary")
        For Each elem In rng
            If Not .exists(elem.Value) Then
                .Item(elem.Value) = Null
            Else
                Set silRng = Union(silRng, elem)
            End If
        Next elem
        Set silRng = Intersect(rng, silRng)
    End With
    
    If Not silRng Is Nothing Then silRng.EntireRow.Delete

End Sub
 
Necdet bey, Veyselemre Bey
BD sutunundaki mükerrerlere göre
BA:BE arasındaki satırı silecek olursak
kodları nasıl düzenlemeliyiz

:
 
Son düzenleme:
Sn Veyselemre cevabınız için teşekkürler
Ancak yaptığım denemede sadece BD sutunundaki benzerleri siliyor
BD sutunundaki mükererlere göre BA:BE arasındaki satırı silmesi gerekiyor
 
Nasıl olmasını istediğimi ekli dosyada belirttim
 

Ekli dosyalar

Kod:
Sub test()

    Dim rng As Range, silRng As Range, elem
    Set rng = Range("BD4:BD" & Cells(Rows.Count, "BD").End(3).Row)
    Set silRng = Range("BD1")
    
    With CreateObject("Scripting.Dictionary")
        For Each elem In rng
            If Not .exists(elem.Value) Then
                .Item(elem.Value) = Null
            Else
                Set silRng = Union(silRng, elem.Offset(, -3).Resize(, 5))
            End If
        Next elem
        Set silRng = Intersect(rng.Offset(, -3).Resize(, 5), silRng)
    End With
    
    If Not silRng Is Nothing Then silRng.Delete xlUp

End Sub
 
Sn Veyselemre çok teşekkürler
Tam istediğim gibi çalışıyor
 
Necdet bey sizin kodlarda
BD sutunundaki mükerrerlere göre
BA:BE arasındaki satırı silecek olursak
kodları nasıl düzenlemeliyiz
 
Geri
Üst