yinelenen değerler

kahramang1

Altın Üye
Katılım
20 Şubat 2007
Mesajlar
167
Beğeniler
0
Excel Vers. ve Dili
ofis 2003
#1
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

dalgalikur

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2006
Mesajlar
1,889
Beğeniler
171
Excel Vers. ve Dili
2007-2013
#2
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

kahramang1

Altın Üye
Katılım
20 Şubat 2007
Mesajlar
167
Beğeniler
0
Excel Vers. ve Dili
ofis 2003
#5
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
Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,083
Beğeniler
75
Excel Vers. ve Dili
excel2013
#6
işlem alttan üste doğru yapılıyor veriler çok olduğu için biraz zaman alır beklemeniz gerek.
 

Ömer BARAN

Uzman
Uzman
Katılım
8 Mart 2011
Mesajlar
12,826
Beğeniler
604
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#7
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
Uzman
Katılım
8 Mart 2011
Mesajlar
12,826
Beğeniler
604
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#8
İş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
Uzman
Katılım
8 Mart 2011
Mesajlar
12,826
Beğeniler
604
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#9
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.
 

kahramang1

Altın Üye
Katılım
20 Şubat 2007
Mesajlar
167
Beğeniler
0
Excel Vers. ve Dili
ofis 2003
#10
Her şey için çok teşekkür ederim. Ellerinize sağlık. Büyük bir sıkıntıdan kurtuldum. Kolay gelsin.
 
Katılım
8 Mart 2011
Mesajlar
12,826
Beğeniler
604
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#11
İyi günler dilerim.
 
Üst