A1 boşsa A satırını sil

Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
ekteki dosyamda 800 satırlık bir data var. Eğer A kolonunda bir değer yoksa o satırı makro ile tamamen sildirmek istiyorum. Aşağıdaki kodları denedim ama olmadı hata nerde acaba...

Deneme 1

Sub sil()
For i = 1 To 865
If Cells(i, "A") = 0 Then Rows(i).Select
Selection.Delete Shift:=xlUp
Next
End Sub

Deneme 2

Sub sil()
For i = 1 To 865
If Cells(i, "A") = 0 Then Rows(i).Delete
Next
End Sub

Her ikiside bazı satırları sildi bazılarını silmedi.
Hata nerde yapıyorum...

Tşk
 

Ekli dosyalar

Orion1

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

Ofis-2010-TR 32 Bit
0 yerine "" kullanın.:cool:
 

Orion1

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

Ofis-2010-TR 32 Bit
Ama sizin yolladığınız dosyada A sütununda hiç veri yokki.
Nasıl oluyor bu iş.:cool:
 

Orion1

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

Ofis-2010-TR 32 Bit
Pardon varmış şimdi deneyicem.:cool:
 

Korhan Ayhan

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

Silme kodlarında püf nokta döngüyü tersten çalıştırmaktır. Kodlarınızı aşağıdaki gibi değiştirerek sorunu çözebilirsiniz.

Kod:
Sub Sil()
[COLOR=red]For i = 865 To 1 Step -1[/COLOR]
If Cells(i, "A") = "" Then Rows(i).Select
Selection.Delete Shift:=xlUp
Next
End Sub
 
Katılım
17 Ocak 2008
Mesajlar
185
Excel Vers. ve Dili
2003 Türkçe - 2007 Türkçe
ekteki dosyamda 800 satırlık bir data var. Eğer A kolonunda bir değer yoksa o satırı makro ile tamamen sildirmek istiyorum. Aşağıdaki kodları denedim ama olmadı hata nerde acaba...

Deneme 1

Sub sil()
For i = 1 To 865
If Cells(i, "A") = 0 Then Rows(i).Select
Selection.Delete Shift:=xlUp
Next
End Sub

Deneme 2

Sub sil()
For i = 1 To 865
If Cells(i, "A") = 0 Then Rows(i).Delete
Next
End Sub

Her ikiside bazı satırları sildi bazılarını silmedi.
Hata nerde yapıyorum...

Tşk
Şöyle denermisiniz...
For i = 865 To 1 Step -1
If cells(i,"A")="" Then Rows(i).Delete
Next
End Sub
 

Orion1

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

Ofis-2010-TR 32 Bit
Kod aşağıdadadır.:cool:
Kod:
Sub bosayi_sil()
Dim i As Integer
For i = 865 To 1 Step -1
    If Cells(i, "A").Value = "" Then Rows(i).Delete
Next
MsgBox "Silme işlemi sona erdi"
End Sub
 
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Herkese çok teşekkürler. Hepsi iş gördü.
 
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Ancak kodlar neden aşağıdan yukarı doğru silme işlemini doğru yaparken neden yukarıdan aşağıya doğru silmiyor. Hata nerde anlamadım ?
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,607
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
İlk satır silindiğinde, i değişkeninin değeri 2 oluyor. Halbu ki ilk satır silinmiş ve sayfa 1 satır yukarı kaymış olduğundan artık 1. satırın silinmesi söz konusu değil. Çünkü i satırını yani 2. satırı kontrol ediyor ve bu 865 e kadar böyle (birer atlayarak) devam ediyor.
Saygılar.
 
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
çok haklısın. Bak bunu hiç düşünmemiştim. Süper. Çok teşekkürler.
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,607
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Katılım
17 Ocak 2008
Mesajlar
185
Excel Vers. ve Dili
2003 Türkçe - 2007 Türkçe
Sayın dEde sade bir şekilde izah etmiş :)
Tşkler...
 
Üst