• DİKKAT

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

mükerrer kayıtların silinmesi

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,767
Excel Vers. ve Dili
Excel 2019 Türkçe
Arkadaşlar herkese merhaba,
aşağıdaki gibi bir listem var. İstediğim mükerrer olanları silmesi(satır silme olabilir)

Herkese iyi çalışmalar...

A sütunu
aa
aa
aa
bb
bb
bb
bb
cc
cc
cc
dd
dd
dd
 
Kod:
Private Sub CommandButton1_Click()
With Columns("A")
.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("b1"), Unique:=True
.Delete Shift:=xlToLeft
End With
End Sub




mükerrer kayıt satır sil yinelenen
 
Sayın Alpen öncelikle cevabınız için teşekkürler.

makroyu çalıştırdığımda;
aa
aa
bb
cc
dd

oluyor.

Not: döngü yoluyla olmaz mıydı acaba ? Sadece merak ettiğim için soruyorum.

İyi çalışmalar.
 
Galiba ilk hücreyi başlık olarak gördüğünden yapıyor. Bilmiyorum doğru mu düşünüyorum.
 
merhaba

listenin ilk satırının başlık olduğunu düşünerek yazmıştım. örnek

İsimler
ali
ali
ali
veli
veli
veli
.
.
.
.

gibi.

bu şekilde denerseniz sorun çıkmaz.

ayrıca döngü ile
1. eğer verileriniz sıralı değil ise

Kod:
For i = 1 To Cells(65536, 1).End(xlUp).Row
    For j = i + 1 To Cells(65536, 1).End(xlUp).Row
        If Cells(i, 1) = Cells(j, 1) Then
            Range(j & ":" & j).EntireRow.Delete
        End If
    Next j
Next i

2. sıralı ise

Kod:
For i = 1 To Cells(65536, 1).End(xlUp).Row
    For j = i + 1 To Cells(65536, 1).End(xlUp).Row
        If Cells(i, 1) = Cells(j, 1) Then
            Range(j & ":" & j).EntireRow.Delete
        Else
            Exit For
        End If
    Next j
Next i

aslında 1. önerilen kod sıralı olsa da olmasa da çalışır. ama ikinci kod veriler sıralı ise ve çok veri varsa çok daha hızlıdır.

not : pek deneyemedim.
 
Teşekkürler gayet güzel olmuş.

İyi akşamlar....
 
denedim de, bir mantık hatası var son 2 kodda (silinen satırın yerine geçen alt satır gibi)

düzeltilmiş ve biraz daha hızlandırılmışı.

1. veriler sıralı değilse

Kod:
z = Cells(65536, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = 1 To z
    For j = z To i + 1 Step -1
        If Cells(i, 1) = Cells(j, 1) Then
            Range(j & ":" & j).EntireRow.Delete
        End If
    Next j
Next i

2. veriler sıralı ise

Kod:
z = Cells(65536, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = 1 To z
    For j = z To i + 1 Step -1
        If Cells(i, 1) = Cells(j, 1) Then
            Range(j & ":" & j).EntireRow.Delete
        Else
            Exit For
        End If
    Next j
Next i
 
ben macroyu denedim

birden fazla mükerrer kayıtta
saglıklı çalışmıyor.

düzeltebilirseniz benimde cok işime yarayacak
 
hangisini denediniz? neresi "sağlıksız" çalışıyor? hangisini düzelteyim?
 
pardon sonraki kodu denemedim ilkini denemiştim. bu macroya benimde ihtiyacım vardı teşekkürler
 
bir veriler sıralı değilseyi denedim... hem sıralı hemde sırasız bir dosyada aynı kayıt ikiden fazla olsa bile güzel çalışıyor çok teşekkürler...
 
Sayın Alpen ikincisini(veri sıralı ise) çalıştıramadım. Ama birincisi ve advanced filter örneği tam istediğim gibi olmuş. Bir de büyük harf - küçük harf ayrımı yapıyor. Eğer kodu geliştirmek isterseniz diye yazıyorum. :D

İyi Çalışmalar...
 
Merhaba :hey:

Mükerrer:defalarca yapılan, yinelenen...(1 olursa zaten mükerrer denmez)

Sayın Alpen'in 08.Aralık.2004 17:40 da yazdığı, veriler sıralı değilse kodunu denedim gayet güzel çalışıyor.

Edit:Ben bir mesaja başlayıp yazana kadar çok zaman geçiyor galiba.Zaman aşımına uğruyor. :hiho: Lütfen bu mesajımı tamamen siliniz.
Edit xxrt:Silemem yine zaman aşımına uğradı ALPEN cevabı vermiş. :hiho:
p.s. jale: full dolu, geri iade etmek, link hattı, nüans farkı, arka fon, sinsi tuzak, giriş introsu, atlı süvari ... nasıl?
 
"Bir de büyük harf - küçük harf ayrımı yapıyor"

yapmasını istemiyorsanız.

Kod:
If Cells(i, 1) = Cells(j, 1) Then
satırını
Kod:
If lcase(Cells(i, 1)) = lcase(Cells(j, 1)) Then

veya

Kod:
If ucase(Cells(i, 1)) = ucase(Cells(j, 1)) Then

olarak değiştirin.

p.s. jale: full dolu, geri iade etmek, link hattı, nüans farkı, arka fon, sinsi tuzak, giriş introsu, atlı süvari ... nasıl?
 
Geri
Üst