• DİKKAT

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

Soru Mükerrer Satır (Üst Satırları Silme)

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
520
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Arkadaşlar forumu baya inceledim ancak mükerrer silme işinde tam istediğimi bulamadım.

İsteğim Makro butona basınca A:A sütununda yer alan bilgilerde en alttaki satır kalacak şekilde üstteki mükerrerleri sildirmeyi sağlamak.
 
Merhaba,

Linki inceleyiniz.


.
 
@Ömer Hocam Kodlarınız çok güzel ellerinize sağlık. Ancak ben "Kayıt" Sekmesi ve A:A sütunu için bu işlemi yapmak istiyorum. Revize ettim ancak KAYIT sekmesi aktif iken çalışıyor. Nerede hata yapıyorum acaba?


Sizin Kodlarınız.

Kod:
Sub M_Sil()
   
    Dim d As Object, i As Long, deg As String, k As Range

    Application.ScreenUpdating = False

    Set d = CreateObject("Scripting.Dictionary")

    For i = Cells(Rows.Count, "K").End(xlUp).Row To 2 Step -1
        deg = Cells(i, "K")
        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.EntireRow.Delete

End Sub


Benim düzelttiğim Kısım
Kod:
Sub M_Sil()
   
    Dim d As Object, i As Long, deg As String, a As Range

    Application.ScreenUpdating = False

    Set d = CreateObject("Scripting.Dictionary")

    For i = Sheets("Kayıt").Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        deg = Sheets("Kayıt").Cells(i, "A")
        If Not d.exists(deg) Then
            d.Add deg, Nothing
        Else
            If a Is Nothing Then
                Set a = Rows(i)
            Else
                Set a = Application.Union(a, Rows(i))
            End If
        End If
    Next i
   
    On Error Resume Next
    a.EntireRow.Delete
MsgBox "OK"
End Sub
 
Deneyiniz.
Kod:
Sub M_Sil()
  
    Dim d As Object, i As Long, deg As String, a As Range, Sk As Worksheet

    Application.ScreenUpdating = False

    Set d = CreateObject("Scripting.Dictionary")
    Set Sk = Sheets("Kayıt")

    For i = Sk.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        deg = Sk.Cells(i, "A")
        If Not d.exists(deg) Then
            d.Add deg, Nothing
        Else
            If a Is Nothing Then
                Set a = Sk.Rows(i)
            Else
                Set a = Application.Union(a, Sk.Rows(i))
            End If
        End If
    Next i
  
    On Error Resume Next
    a.EntireRow.Delete
MsgBox "OK"
End Sub
 
Teşekkürler @Ömer hocam çalışıyor :)
 
Deneyiniz.
Kod:
Sub M_Sil()
 
    Dim d As Object, i As Long, deg As String, a As Range, Sk As Worksheet

    Application.ScreenUpdating = False

    Set d = CreateObject("Scripting.Dictionary")
    Set Sk = Sheets("Kayıt")

    For i = Sk.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        deg = Sk.Cells(i, "A")
        If Not d.exists(deg) Then
            d.Add deg, Nothing
        Else
            If a Is Nothing Then
                Set a = Sk.Rows(i)
            Else
                Set a = Application.Union(a, Sk.Rows(i))
            End If
        End If
    Next i
 
    On Error Resume Next
    a.EntireRow.Delete
MsgBox "OK"
End Sub
Ömer hocam bu makroyu üstteki mükerreri değilde son eklenen mükerreri silmek için nasıl revize edebiliriz
 
For i = Sk.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1

yukarıdaki satırı aşağıdaki gibi değiştirip deneyiniz.

For i = 2 To Sk.Cells(Rows.Count, "A").End(xlUp).Row

.
 
Çok teşekkür ederim Ömer hocam sağolasın
 
Geri
Üst