hücre boşsa hücrenin olduğu satırı silme

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
merhaba arkadaşlar 12. satırdan sonraki satırlardan eğer "I" stünundaki hücre boşsa o boş olan hücrenin bulunduğu satırın silinmesi için nasıl bir kod yazabilirim??
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Aşağıdaki şekilde denermisiniz?
Dolu hücre sayısı A sütunununa göre olduğu farzedilmiştir.:cool:
Kod:
Sub satir_sil()
Range("I13:I" & Cells(65536, "A").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
MsgBox "Satırlar Silindi"
End Sub
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn.udentr2002,

aşağıdaki kodu dener misiniz?

Kod:
Sub bossa_sil()
For sat = 13 To 50
If Cells(sat, 9) = "" Then
Rows(sat).Delete
End If
Next
End Sub
kodu kendinize göre uyarlayabilirsiniz.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

ilgin için teşekkürler ama
hata veriyor birde ben 12. satırdan sonra gelen "I" stünlarında eğer I stünunda boş hücre görürse o boş hücrenin olduğu satırın silinmesini kastetmiştim
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
celchug hocam

Çok teşekkür ederim oldu ellerine sağlık
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Ekli dosyayı inceleyiniz.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
sezar hocam

Özür dilerim ben A stünlarını doldurmadan denemiştim kodlarınız çalışıyormuş özrümü kabul edin vakit ayırdığınız için teşekkür ederim
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Rica ederim.
İyi çalışmalar.:cool:
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

aynı konuya istinaden bunun tam tersini nasıl yapabiliriz yani hücre dolu ise silmek için aşağıdaki kodunuzun tam tersini yani nasıl yazabiliriz

Range("I13:I" & Cells(50, "A").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,650
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kod A sütunundaki dolu hücrelere ait satırların tamamını siler.

Kod:
Sub DOLU_HÜCRELERİ_SİL()
    [A:A].SpecialCells(xlCellTypeConstants, 23).EntireRow.Delete
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
teşekkürler hocam
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
cost hocam

sadece "I" stününunun 13. satırından sonraki dolu hücreleri silmesi için nasıl kod yazabilirim ben böyle bir şey yazdım ama çalışmadı

[I13:I].SpecialCells(xlCellTypeConstants, 23).EntireRow.Delete

not : kod içerisinsdeki 23 neyi ifade etmekte??
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Range(Range("I13"), Range("I13").End(xlDown)).SpecialCells(xlCellTypeconstants).EntireRow.Delete

ya da

Range("I13:I65536").SpecialCells(xlCellTypeConstants).EntireRow.Delete

specialcells metodu xlCellTypeConstants ya da xlCellTypeFormulas ise bunlardan sonra bir de opsiyonel olarak değer verebilirsiniz.Bunlar

xlErrors ya da 16
xlLogical ya da 4
xlNumbers ya da 1
xlTextValues ya da 2 dir.Ama 23 neyi ifade ediyor ben de merak ettim.Sayın COST_CONTROL bugün aydınlatır İnşallah bizi.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,650
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Makro kaydet yöntemi ile aşağıdaki sonuçları elde ettim. Umarım faydası olur.

Kod:
Sub F5_MENÜSÜ_ÖZEL_HÜCRE_SEÇİMLERİ()
    
    [A:A].SpecialCells(xlCellTypeComments).Select
    'Belirlenen aralıktaki açıklama içeren hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeConstants, 23).Select
    'Belirlenen aralıktaki tüm sabit değer (sayı ve metin) içeren hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeConstants, 1).Select
    'Belirlenen aralıktaki tüm sabit sayısal değer içeren hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeConstants, 2).Select
    'Belirlenen aralıktaki tüm sabit metinsel değer içeren hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeFormulas, 1).Select
    'Belirlenen aralıktaki formül içeren sayısal hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeFormulas, 2).Select
    'Belirlenen aralıktaki formül içeren metinsel hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeBlanks).Select
    'Belirlenen aralıktaki tüm boş olan hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeConstants, 16).Select
    'Belirlenen aralıktaki sabit hata içeren hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeFormulas, 16).Select
    'Belirlenen aralıktaki formül sonucu hata oluşan hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeAllValidation).Select
    'Belirlenen aralıktaki veri doğrulama uygulanmış hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeLastCell).Select
    'Belirlenen aralıktaki son hücreyi seçer.
    
    [A:A].SpecialCells(xlCellTypeAllFormatConditions).Select
    'Belirlenen aralıktaki koşullu biçimlendirme uygulanmış hücreleri seçer.
    
    [A:A].SpecialCells(xlCellTypeVisible).Select
    'Belirlenen aralıktaki yalnızca görünür hücreleri seçer.
    
    [A:A].CurrentRegion.Select
    'Belirlenen aralıktaki geçerli bölgeyi seçer.
    
    ActiveSheet.DrawingObjects.Select
    'Aktif sayfadaki nesneleri seçer.

End Sub
 
Son düzenleme:

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
bedersu ve cost hocam

İkinizinde vermiş olduğu bilgiler için çok teşekkür ederim gerçekten açıklayıcı ve bilgilendirici örnekleriniz içinde Allah razı olssun
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Teşekkür ederim sayın COST_CONTROL.Emeğinize sağlık.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
aynı konuya istinaden

Hocam aynı konuya benzer olduğu için başka bir başlık altında konu açmak istemedim o yüzden burdan soruyorum tekrar üstteki kodlar işime yaradı ve artı olarak

Sayfada M stünunda 12. satırdan sonra hücre değeri (0) sıfır ise sıfır olan o satırları silip Sayfa2'ye yazması için nasıl bir kod yazabiliriz vede bunu bir buton aracılığı ile değilde o sayfada M stünunda sıfır olan satırları gördüğü an o satırı silip sildiği bilgileri aynı şekilde sayfa2 ye yazması lazım bunun için ne yapabilrim ekli bir dosya gönderiyorum hocam ilgilenen tüm arkadaşlarıma teşekkür ederim
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Merhaba,
Sıfırı gördüğü an kodları çalıştırmak için sayfa değiştiğinde kodun çalışması gerekir.Bu sizin ne kadar işinizi görür bilemiyorum ama aşağıdaki kod ,sayfa her tıklandığında değeri 0 olan hücreyi buluyor,Sayfa2'ye aktarıyor ve o satırı tamamen siliyor.Sayfanın change özelliği M sütununa 0 yazana kadar o satırı silmez ama 0 yazıldığı an o satırı taşı.Bu yüzden de diğer sütunlara veri giremezsiniz.Yok ben zaten diğer sütunlara veri girmeyeceğim diyorsanız bu kodlar tam size göre.Veri yazacaksanız size tavsiyem bu kodları Enter tuşuna atamanız.Enter'a basınca kodlar çalışır ve 0 olan satır taşınır.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each satır In Range("M12:M65536")
If satır = "0" Then
sıra = WorksheetFunction.CountA(Sheets("Sayfa2").Range("A:A"))
satır.Select
adr = satır.Address
Selection.EntireRow.Copy
Sheets("Sayfa2").Range("a" & sıra + 3).PasteSpecial
Sheets("Sayfa1").Range(adr).EntireRow.Delete
End
End If
Next satır
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

Görüyorum saatlerdir sorduğum soru ile uğraşıyorsunuz gerçkten Allah razı olsun hakkınızı helal edin
konuya gelirsem eğer
ilk olarak kodda sayfaya tıkaldığımda şu hatayı veriyor
application-defineed or object-defineed error
ve aşağıdaki kodu işaretliyor
sıra = WorksheetFunction.CountA(Sheets("Sayfa2").Range("A :A"))
ben hatayı çözemedim

ikincisi ise hocam çok özür dileyerek söylüyorum bu kodu o sayfada her sıfırı gördüğünde aynı işlemi yapan kod yazmamızın imkanı varmı?? tekrar ilgilenirseniz çok sevinirim

Not : ben kodu sayfa1 in kod bölümüne yazdım yazdığım yer doğrumu?
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
A:A arasında boşluk olmasın.
Diğer sorunuzu da anlayamadım.Her sıfırdan kastınınz ne?
 
Üst