• DİKKAT

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

Satır silme

  • Konbuyu başlatan Konbuyu başlatan xlsx
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
X

xlsx

Misafir
Arkadaşlar Selam40-50 bin satır data ile çalıştığım bir dosya var.Bu dosyada filtre yapıp belirli kelime gruplarını içeren satırlardan bana ait olmayanları filtrede seçip o satırdaki tüm verileri siliyorum.Ama bu işlemi sürekli yaptığım için koda ihtiyacım oldu
Filtreden seçmek yerine Sheet2'de yazdığım bana ait olmayan Malzeme adlarını görüp bunu sheet1e yerleştirdiğim ve 5.sütundaki filtrede arayıp bulsun ve o satırı komple silsin.Mümkün mü?
Yardımınızı rica ederim.
 
Selamlar,
Kod:
Sub Calıstır()
For b = 1 To [Sayfa2!F65536].End(3).Row
Set Bul = [a:a].Find(Sheets("Sayfa2").Cells(b, "F"), LookIn:=xlValues, LookAt:=xlWhole)
Bul.Delete
Next b
End Sub
Ekli örneği deneyiniz. Sayfa2 F sütunu silinmesini istediğiniz veriler.
 

Ekli dosyalar

Sn Leumruk benim dosyamda yaklaşık 10 sütun var ve komple tüm satırı silmesini istiyorum.Yani sağındaki ve solundaki tüm verileri silecek.
 
örnek dosya

örnek dosya ekte.Başlıklar tamammıyla örnektir.Data girişleri de.
Ama mantık olarak sheet2 A sütununa ben silinmesini istediğim verileri yazacağım.Sheet1de makroyu çalıştırdığımda da 5. ya da örneğin 7 satırdaki sheet2deki silinecek verileri bulup komple o satırı silecek.
 

Ekli dosyalar

2. sayfanızın adı kodda hata verdi bu nedenle veri olarak isimlendirdim. Dosya ekte.
 

Ekli dosyalar

Selamlar,

Alternatif olarak aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Sub KRİTERE_GÖRE_SATIR_SİL()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim X As Long
    Set S1 = Sheets("HAM DATA")
    Set S2 = Sheets("SİLİNECEK LİSTE")
    
    Application.ScreenUpdating = False
    For X = 2 To S2.[A65536].End(3).Row
    S1.[A1].AutoFilter Field:=5, Criteria1:=S2.Cells(X, 1)
    If S1.[A65536].End(3).Row > 1 Then
    Range("A2:IV" & S1.[A65536].End(3).Row).Delete
    End If
    Next
    S1.[A1].AutoFilter Field:=5
    Application.ScreenUpdating = True
    Set S1 = Nothing
    Set S2 = Nothing
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
2. sayfanızın adı kodda hata verdi bu nedenle veri olarak isimlendirdim. Dosya ekte.
Sn leumruki, dosyaya uyarlanmış kodları denediğimde DEFTER verisi içeren sütuna bağlı satırları silmediğini gördüm(Bazı Defter verisini içerenler kalıyor)

Sn Korhan'ın kodlarını daha çalıştırmadan önce incelediğimde tam istediğim gibi olduğunu gördüm ve denediğimde de başarılıydı.Çok işime yarayacak bir kod olduğu için tşk ederim..Sizlerin yardımıyla yeni şeyler öğrenmek gerçekten bizler için bulunmaz fırsat.Tekrar tşk..
 
Sn Korhan
Kod'daki sayfalar için nothing kullanılmasının nedeni nedir bilgi alabilir miyim?Tşk

Set S1 = Nothing
Set S2 = Nothing
 
Selamlar,

Set komutu ile hafızaya alınan sayfa isimlerini daha sonra hazıfadan silmek için "Nothing" komutu kullanılır.
 
Tşk'ler kod konusunda çok yeni olduğum için yeni yeni öğrenmeye çalışıyorum.Umarım birgün sizler kadar olmasa da soran değil cevaplayan olabilirim
 
Merhaba,
Tam ters işlem için yani "Silinecek Liste" sayfasındaki bulunanan kelimeleri silmese de diğer kelimelerin bulunduğu satırları silse kodlarda değişiklik nasıl olmalıydı? Kullandığım yukarıdaki dosyada bu işlemi ters yapmak istedim.Yardımcı olacak arkadaşlara şimdiden tşk'ler.
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Sub KRİTERE_GÖRE_SATIR_SİL()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim X As Long
    Set S1 = Sheets("HAM DATA")
    Set S2 = Sheets("SİLİNECEK LİSTE")
    
    Application.ScreenUpdating = False
    For X = S1.[E65536].End(3).Row To 2 Step -1
    If WorksheetFunction.CountIf(S2.[A:A], S1.Cells(X, 5)) = 0 Then
    S1.Rows(X).Delete
    End If
    Next
    Application.ScreenUpdating = True
    Set S1 = Nothing
    Set S2 = Nothing
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Sn Korhan, tam istediğim oldu.Kodlarınızı sürekli inceliyorum ve yeni yeni şeyler öğreniyorum.Elinize sağlık
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst