• DİKKAT

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

Koşullu Satır Silmek

Katılım
2 Şubat 2013
Mesajlar
69
Excel Vers. ve Dili
2007 Türkçe
Arkadaşlar excel çalışma sayfasınsa "A1" hücresi sabit kalmak koşulu ile, aşağıda herhangi bir sutunda "PAYIN ADI" yazılı hücre bulunacak ve "payın adı" nın bulunduğu satır hariç olmak üzere tüm satırlar silinecek ( "A1" ve "Payın adı" arasındaki satırlar A1 dahil )
 
Merhaba,

örnek dosya sorunuzu daha iyi açıklayacaktır.
 
Necdet Bey...

Ekteki basit dosya sanırım yeterli olacaktır. silinecek alan "A1" satırı dahil olmak üzere, "Payın adı" satırı silinmeyecek bir üst satıra kadar olan alan silinecek. Yani "A1" ve "Payın adı" arası satırlar silinecek. (A1 silinecek ta ki "Payın adı" bir üst satırına kadar

Not: "A1" ile "Payın Adı" arasındaki satırlar zaman zaman eksilebilir veya artabilir.
 

Ekli dosyalar

Merhaba,
Aşağıdaki kodu dener misiniz?
Kod:
Sub Satırsil()
    Set Aranan = Sheets("sektor").Cells.Find("PAYIN ADI", , xlValues, xlWhole)
    If Not Aranan Is Nothing Then
    Sheets("sektor").Rows(1 & ":" & Aranan.Row - 1).Delete
    End If
End Sub
 
Sayın dEdE...

Öncelikle iyi niyetinize çok teşekkür ediyorum. Kod çalıştı. Aynı işlem "ürün", "sektör", "veri" çalışma sayfalarında da var. Sizin daha önce yaptığınız gibi, bu Makro'yu bu üç çalışma sayfası için uygulayabilir miyiz? Makro'yu tek tek yazmak suretiyle yapabiliriz ama kısa olması açısından acaba olur mu? dedim. Takrar çok teşekkür ediyorum.
 
Şöyle bir uygulama yaptım. Makro çalıştı ama, sayfaların birinde "Payın adı" da uçtu. Diğerlerinde duruyor.

Sub Satırsil()
Set Aranan = Sheets("sektor").Cells.Find("PAYIN ADI", , xlValues, xlWhole)
Set Aranan = Sheets("ürün").Cells.Find("PAYIN ADI", , xlValues, xlWhole)
Set Aranan = Sheets("veri").Cells.Find("PAYIN ADI", , xlValues, xlWhole)

If Not Aranan Is Nothing Then
Sheets("sektor").Rows(1 & ":" & Aranan.Row - 1).Delete
Sheets("ürün").Rows(1 & ":" & Aranan.Row - 1).Delete
Sheets("veri").Rows(1 & ":" & Aranan.Row - 1).Delete

End If
End Sub
 
Merhaba,
... Aynı işlem "ürün", "sektör", "veri" çalışma sayfalarında da var. ...
diyorsunuz ama örnek dosyanızda böyle bir durum yok.
... Sizin daha önce yaptığınız gibi, bu Makro'yu bu üç çalışma sayfası için uygulayabilir miyiz? ...
Eğer dosyanızda bu üç sayfadan başka dayfa yoksa aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub Satırsil()
For i = 1 To 3
    Set Aranan = Sheets(i).Cells.Find("PAYIN ADI", , xlValues, xlWhole)
    If Not Aranan Is Nothing Then
    Sheets(i).Rows(1 & ":" & Aranan.Row - 1).Delete
    End If
Next
End Sub
 
Sayın dEdE...

Vermiş olduğum o basit örnek dosya, aslınsa olayın mantığını açıklamak içindi. Dosyada "ürün", sektör" ve "veri" den başka çalışma sayfaları da var. Ama almak istediğim sadece bu üçü idi. Ancak sayfa formatları aynı. Dolayısıyla makro da sayfaları isimleriyle aratmak gerekecek galiba. Emekleriniz için teşekkürler.
 
Merhaba,
Bu yazışmalardan şunu öğrendik galiba?
*Uzun yazışmalara sebep olmamak için daha ilk mesajda örnek dosya eklemeliymiş.
*Örnek dosya asıl dosya ile bire bir benzer olmalı, hatta gizli bilgiler yoksa aynısı olmalıymış.

Kod:
Sub Satırsil()
For i = 1 To 3
If Sheets(i).Name <> "sektor" Then GoTo Atla
If Sheets(i).Name <> "ürün" Then GoTo Atla
If Sheets(i).Name <> "veri" Then GoTo Atla
    Set Aranan = Sheets(i).Cells.Find("PAYIN ADI", , xlValues, xlWhole)
    If Not Aranan Is Nothing Then
    Sheets(i).Rows(1 & ":" & Aranan.Row - 1).Delete
    End If
Atla:
Next
End Sub
 
Evet Sayın dEdE...

Yazdıklarınıza aynen katılıyorum. Bundan sonra soru gönderirken dediklerinizi uygulayacağım. Çünkü zaman ve emek kaybı oluyor. Sağlık ve mutluluk dileklerimle
 
Geri
Üst