• DİKKAT

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

Boş yazan satırı silen makro

  • Konbuyu başlatan Konbuyu başlatan AS3434
  • Başlangıç tarihi Başlangıç tarihi

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Aşağıdaki kodlarla "boş" yazan satırı silmek istiyorum. Nedense bir seferde silmiyor. 2-3 kere butona basmam gerekiyor. Sebebi kodlardaki hatadan mı yoksa benim Excel ayarlarımdan mı kaynaklanıyor? (Bu aralar Excele birşeyler oldu Formül yazıyorum Sonuç yerine formülü hücrede gösteriyor.)

Kod:
Sub sil()
For i = 1 To Range("a65536").End(xlUp).Row
If Cells(i, 1) = "boş" Then
Rows(i).Delete
End If
Next
End Sub
 
Hocam benim bilgisayarda da denedim bende de tek seferde silmedi.
Çok uyduruk bir yöntem oldu ama ben makronun içine bir döngü daha koydum.
senin yerine düğmeye 5 kez basıyor,
başka cevap gelmezse böyle idare et artık:mrgreen:

Sub sil()
For m = 1 To 5
For i = 1 To Range("a65536").End(xlUp).Row
If Cells(i, 1) = "boş" Then
Rows(i).Delete
End If
Next
Next
End Sub
 
Bu kodu deneyiniz.

Sub Makro2()
[A1:A100].SpecialCells(xlCellTypeBlanks).Delete
End Sub
 
Sub sill()
For x = Range("a65536").End(xlUp).Row To 1 Step -1
If Cells(x, 1) = "boş" And Cells(x, 1) <> "" Then Rows(x).Delete
Next
End Sub
 
Sn. Seyit Tiken
Verdiğiniz kodu çalıştıramadım. (Makro bilgim zayıf, ne şekilde düzenleyeceğimi bilemedim.)

Sn. mesudiye_052
Kodlar güzel çalışıyor.

Sn. melphisto
Birşey bulamasaydım başvuru yolu verdiğiniz kodlar olacaktı. :)

Hepinize ilginiz için teşekkür ederim.
Sevgilerle.
 
Selamlar,

Sn. AS3434,

Dikkat ederseniz sizin kullandığınız kod döngüye birinci satırdan başlayarak devam ediyor.

Kod:
For i = 1 To Range("a65536").End(xlUp).Row

Oysaki bu tür silme işlemlerinde döngü tersten başlamalıdır. Sebebine gelince sizin döngünüzde kullandığınız "i" değişkeni her satır silmede satırları yukarı doğru kaydıracaktır fakat değişken 1 artarak devam edecektir. Bu işlemde kriterlerinize uyan bazı satırların silinmemesine sebep olacaktır. Zaten bu istenmeyen durumuda sorunuzda belirtmişsiniz.

Sn. mesudiye_052 'nin size önerdiği kod sizin ihtiyacınızı karşılayacaktır. Sebebide döngünün son satırdan yukarı doğru çalışmasıdır.

Kod:
For x = Range("a65536").End(xlUp).Row To 1 Step -1
 
Sayin AS3434,
Sayin Seyit Tiken`nin verdigi kodlari uyguladim bende oldu.Örnek dosya asagida.
 
Sn. COST_CONTROL
Sitede bulduğum kodlar, bulduğum yerde gayet güzel çalışıyordu.
1To.. Range To.. olayını bilmediğim için Sn. mesudiye_52 nin kodlarıyla farkını bulamamıştım. Sormaya da çekinmiştim. Bundan dolayı ders niteliğindeki detaylı açıklamalarınız için teşekkür ederim.

Ayrıca ilgilenen tüm arkadaşlara tekrar teşekkür ederim.
 
Geri
Üst