Bir kritere göre satır sildirme.

Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Belirtilen bir sütunda içinde sıfır değeri olan hücrelerin ait oldukları satırların otomatik olarak silinmesini istiyorum.
 

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
Aşağıdaki kodları deneyiniz.:cool:
Kod:
Sub satir_sil()
Dim i As Long
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
For i = Cells(65536, "D").End(xlUp).Row To 1 Step -1
    If Cells(i, "D").Value <> "" And Cells(i, "D").Value = 0 Then
        Rows(i).Delete
    End If
Next
Application.ScreenUpdating = True
MsgBox "0 Olan sat&#305;rlar silindi.."
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

A&#351;a&#287;&#305;daki kodlar&#305; bir mod&#252;lle ili&#351;kilendirir misiniz?

Kod:
Sub Sifir_Satirlar_Sil()
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
For i = [D65536].End(3).Row To 2 Step -1
     If Cells(i, "D") = 0 Then Rows(i).Delete
Next i
MsgBox "Sat&#305;rlar Silinmi&#351;tir....."
End Sub

Not : Ge&#231; kalm&#305;&#351;&#305;m :)
 
Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Necdet_Yesertener,

Yard&#305;m ve destekleriniz i&#231;in &#246;ok te&#351;ekk&#252;rler..
 
Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Orion2,

&#199;ok &#231;ok te&#351;ekk&#252;rler...
 

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
Say&#305;n Galus e&#287;er Necdet Yesertener hocam&#305;n kodlar&#305;n&#305; kullanacaksan&#305;z.Kodlar&#305;n en alt&#305;na a&#351;&#287;&#305;daki kodu ilave edeniz.Say&#305;n hocam herhalde bu kodu yazmay&#305; unutmu&#351;.:cool:
Kod:
Application.ScreenUpdating = True
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Say&#305;n Orion2 hocam, unutmad&#305;m, &#246;zellikle yazmad&#305;m, zaten silinen silinmi&#351;tir, makroyu tekrar &#231;al&#305;&#351;t&#305;rmak i&#231;in kimbilir ka&#231; g&#252;n ge&#231;er diye d&#252;&#351;&#252;nd&#252;m :)

Bence burda &#246;nemli olan ikimizin d&#246;ng&#252;s&#252; farkl&#305; sat&#305;rlarda bitiyor. Ben 2. siz 1. sat&#305;ra kadar devam ettiriyorsunuz.

2. sat&#305;rda bitirmemin nedeni her excel tablosunda mutlaka bi ba&#351;l&#305;k olur d&#252;&#351;&#252;ncesinden dolay&#305;d&#305;r.

Sayg&#305;lar :)
 

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
Say&#305;n hocam,ben say&#305;n Galus'un yollad&#305;&#287;&#305; dosyaya g&#246;re yapt&#305;m.Orada 1nci sat&#305;ra kadar veri vard&#305; yan&#305;lm&#305;yorsam.Sayg&#305;lar.
 
Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Önceki örnekteki D sütununa göre veriler başarı ile silinmişti. Şimdi hem D sütunu hem de E sünununa göre sıfır olan satırları sildirebilir miyiz? Yani D sütununda stokta olmayanları silecek ama E sütununa da bakacak. E sütununda sayımda bir rakam varsa silmesin.

Teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Hem E hem de D sütunu 0 ise sildirdim. Umarım doğru anlamışımdır.

Kod:
Sub Sifir_Satirlar_Sil()
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
j = [D65536].End(3).Row
k = [E65536].End(3).Row
If j < k Then j = k
For i = j To 1 Step -1
     If Cells(i, "D") = 0 And Cells(i, "E") = 0 Then Rows(i).Delete
Next i
MsgBox "Satırlar Silinmiştir....."
End Sub
 
Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Aynen istedi&#287;im buydu. Demekki derdimi iyi ifade edebilmi&#351;im.
Say&#305;n Necdet_Yesertener, ilgi ve alakan&#305;za &#231;ok &#231;ok te&#351;ekk&#252;rler...
 

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.
Bende bir şeyler hazırladım.:cool.
Ekli dosyayı inceleyiniz.:cool:
Kod:
Sub satir_sil()
Dim i, son_sat As Long
Sheets("Sayfa1").Select
son_sat = Cells(65536, "E").End(xlUp).Row
Application.ScreenUpdating = False
For i = son_sat To 1 Step -1
    If Cells(i, "E").Value <> "" And Cells(i, "D").Value <> "" _
    And Cells(i, "E").Value = 0 And Cells(i, "D").Value = 0 Then
        Rows(i).Delete (xlUp)
    End If
Next
Application.ScreenUpdating = True
MsgBox "0 olan satırlar silindi..", vbOKOnly + vbInformation
End Sub
 
Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Say&#305;n Orion2,

Sayg&#305; ve h&#252;rmetlerimle size de te&#351;ekk&#252;rler...
 

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
Say&#305;n Orion2,

Sayg&#305; ve h&#252;rmetlerimle size de te&#351;ekk&#252;rler...
Rica ederim.
Sayg&#305;lar benden.
Benim yazd&#305;&#287;&#305;m kodlarda say&#305;n &#252;stad&#305;m&#305;n kodlar&#305;na g&#246;re bir fark var .Oda E&#287;er h&#252;cre aral&#305;&#287;&#305;nda D ve E s&#252;tunundaki h&#252;creler bo&#351; ise silme i&#351;lemi ger&#231;ekle&#351;miyor.Silme olabilmesi i&#231;in mutlaka her 2 h&#252;credede 0 olmas&#305; gerekiyor.:cool:
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Benim yazdığım kodlarda sayın üstadımın kodlarına göre bir fark var .Oda Eğer hücre aralığında D ve E sütunundaki hücreler boş ise silme işlemi gerçekleşmiyor.Silme olabilmesi için mutlaka her 2 hücredede 0 olması gerekiyor.:cool:

Sevgili Orion2 ile hep bu mesajda karşı karşıya geliyoruz :)

Sayın Orion2 sizin dediğinizi düşündüm ama dosyada öyle birşey görmediğim için yapmamıştım, oysa haklısınız, geniş düşünmek gerek. Yani Şartı şöyle yazmak gerek (Çünkü sizin şartınızda hücrenin teki null diğeri 0 ise silmiyor)

Kod:
    If (Cells(i, "E").Value = "" Or Cells(i, "E").Value = 0) And _
       (Cells(i, "D").Value = "" Or Cells(i, "D").Value = 0) Then
        Rows(i).Delete (xlUp)
    End If
Hey gidi COBOL heyyy, böyle parantezli şartlar vardı, denedim burda da varmış :)
 
Katılım
8 Eylül 2005
Mesajlar
476
Excel Vers. ve Dili
Excel 2003 - Türkçe
Ben &#351;imdi son eklenen kodlar&#305; nereye ekliyeyim?

Te&#351;ekk&#252;rler..
 

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
Or kullanmak dağa doğru olacaktır.

Sevgili Orion2 ile hep bu mesajda karşı karşıya geliyoruz :)

Sayın Orion2 sizin dediğinizi düşündüm ama dosyada öyle birşey görmediğim için yapmamıştım, oysa haklısınız, geniş düşünmek gerek. Yani Şartı şöyle yazmak gerek (Çünkü sizin şartınızda hücrenin teki null diğeri 0 ise silmiyor)

Kod:
    If (Cells(i, "E").Value = "" Or Cells(i, "E").Value = 0) And _
       (Cells(i, "D").Value = "" Or Cells(i, "D").Value = 0) Then
        Rows(i).Delete (xlUp)
    End If
Hey gidi COBOL heyyy, böyle parantezli şartlar vardı, denedim burda da varmış :)
Evet ,sayın hocam haklısınız.Or kullanmak dağa doğru olacaktır.Saygılar.
 
Üst