yinelenen değerler

Katılım
21 Şubat 2007
Mesajlar
351
Excel Vers. ve Dili
Microsoft Ev ve Ofis 2016
Arkadaşlar ekli dosyada 2 den fazla yinelenen değerleri kaldırmak istiyorum. Yani isim 3,4,5.....kez tekrarlanıyorsa kaldırılacak. Bir veya iki defa yinelendiyse kaldırılmayacak. Teşekkürler.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,803
Excel Vers. ve Dili
2019 Türkçe
Dosyanız Ekte

Kodlar sadece hücre siliyor, eğer satırın tamamını silmek isterseniz.
Kodlarda bulunan
Cells(Bak, "A").Delete xlUp satırını silin, onun yerine aşağıdaki satırı ekleyin.
Rows(Bak).Delete

Kodların bulunduğu sayfayı açmak için; Excel sayfasının("Sayfa1") adını sağ tıklatıp "Kod Görüntüle" seçin.
 

Ekli dosyalar

Katılım
21 Şubat 2007
Mesajlar
351
Excel Vers. ve Dili
Microsoft Ev ve Ofis 2016
İlginiz için çok teşekkür ederim. Kolay gelsin.
 
Katılım
21 Şubat 2007
Mesajlar
351
Excel Vers. ve Dili
Microsoft Ev ve Ofis 2016
Ben satır silmek için gereken düzeltmeyi yapıp, makroyu çalıştırdım. Lakin mousenin bulunduğu okun olduğu bölgede dakikalarca mavi bir daire dönüp duruyor. İşlemi gerçekleştirmiyor. Sebebi nedir acaba?
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,587
Excel Vers. ve Dili
excel2016
işlem alttan üste doğru yapılıyor veriler çok olduğu için biraz zaman alır beklemeniz gerek.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba.

Aşağıdaki kodu kullanırsanız; istenilen liste hızlıca oluşur.
Rich (BB code):
Sub IKIDEN_FAZLASINI_SIL()
Dim s1 As Worksheet, a(), b()
Set s1 = Sheets("Sayfa1")
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
ilk = s1.Cells(Rows.Count, 1).End(3).Row - 1
On Error Resume Next
    a = s1.Range("A1:A" & s1.Cells(Rows.Count, 1).End(3).Row).Value
    ReDim b(1 To UBound(a), 1 To 1)
        For i = 1 To UBound(a)
            If a(i, 1) <> a(i + 2, 1) Then
                    Say = Say + 1
                    b(Say, 1) = a(i, 1)
            End If
        Next i
    If Say > 0 Then
        s1.Range("A1:A" & s1.Cells(Rows.Count, 1).End(3).Row).Clear
        s1.[A1].Resize(Say, 1) = b
    End If
Erase a: Erase b
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox ilk - Say & " adet kayıt silindi.", vbInformation
End Sub
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
İşlemin kendi yerinde (A sütunu) olması için önceki cevabımdaki kodu güncelledim.

Önceki cevabımda verdiğim kod blokunu boş bir Module yapıştırın.
Sayfadaki CommandButton kodu'nu da aşağıdakiyle değiştirin.
Rich (BB code):
Private Sub btnTekrarlariSil_Click()
IKIDEN_FAZLASINI_SIL
End Sub
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
7 numaralı cevabımdaki kod'da, aynı veri üzerinde kod'un tekrar tekrar çalıştırılması halinde veri kaybı oluşmamasına yönelik olarak,
tekrar güncelleme yapıldı.

Ya kod'u doğrudan çalıştırın, ya da 8 numaralı cevaptaki gibi sayfaya eklenecek bir Command Button ile bu kodu ilişkilendirin,
yahut da, 7 numaralı cevabın Sub IKIDEN_FAZLASINI_SIL() şeklindeki isim satırı ile End sub satırları arasındaki kısmı CommandButton_Click kodu olarak kullanın.
 
Katılım
21 Şubat 2007
Mesajlar
351
Excel Vers. ve Dili
Microsoft Ev ve Ofis 2016
Her şey için çok teşekkür ederim. Ellerinize sağlık. Büyük bir sıkıntıdan kurtuldum. Kolay gelsin.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
İyi günler dilerim.
 
Üst