• DİKKAT

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

Aynı olan veriler varsa o satırı silen macro

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar

Excel çalışma kitabımda "veri" adında ve "sorgulama" adında 2 sheet mevcut.

bu 2 sheete ayrı txt verileri çekiyorum.

veri sheet inde B2 hücresinden itibaren sıralanan verilerden sorgulama sheetinde A1 hücresinde olan veriler karşılaştırılıp veri sheetinde benzer olan verilerin bulunduğu satırları silsin istiyorum.

Örneğin
Veri Sheetinde şu veriler var
1596
3523
4568
8657
9876
4789

Sorgulama sheetinde ise şu veriler olsun
1596
4568
4789

Yukalrıdaki örnekte göründüğü gibi Sorgulamada bulunan 3 veri Veri sheetinde var
Veri sheetinde B2 de 1596 B4 te 4568 B7 de 4789 verisi eşleşiyor. bu satırların komple silinip eşleşmeyen veriler bulunduğu satırlar kalacak

Ve ardından kalan bu satırları A2 hücresinden itibaren sıra no ile sıra numarası verecek 1 den itibaren B sütununda kaçtane veri varsa


Konu hususunda bilgi ve yardımlarınızı rica ederim
 
http://s8.dosya.tc/server2/9wwqsa/veri_sil.rar.html

Örnek bir dosya ekledim. linkten indirebilirsiniz. istediğim şey kısa aşağıda özetlediğim gibi. bilgi ve yardımlarınızı rica ediyorum



Veri sheetinde bulunan veriler silinecek. Sorgulama sheetinde aynı olanlar Veri sheetinde varsa o satırlar komple silinecek. Row delete yapar gibi. sonra kalan satırlar A sütununda otomatik A2 den itibaren 1,2,3 şleklinde sıra numarası verilerek yine sıralanacak
 
Modüle ekleyip deneyiz.
Kod:
Sub veri_sil()
Set s1 = Sheets("Sorgulama")
Set s2 = Sheets("Veri")
For i = 1 To WorksheetFunction.CountA(s1.Range("A:A"))
Set bul = s2.Range("B2:B29").Find(s1.Cells(i, "A"))
If Not bul Is Nothing Then
s2.Range("A" & bul.Row & ":C" & bul.Row).Delete
End If
Next
s2.Select
son = s2.Range("A65536").End(3).Row
    s2.Range("A2").Select
    ActiveCell.FormulaR1C1 = "1"
    s2.Range("A3").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Selection.AutoFill Destination:=Range("A3:A" & son), Type:=xlFillDefault
End Sub
 
Son düzenleme:
Rica ederim. Kod içerisindeki s1.[c1] = Cells(i, 1) satırını silin gereksizdir. Kolay gelsin.
 
Geri
Üst