• DİKKAT

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

Satır silme

Katılım
20 Mart 2009
Mesajlar
333
Excel Vers. ve Dili
office 2003 ingilizce
Merhaba,
Sub İptal_Sil()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "BL").End(xlUp).Row To 1 Step -1
If Cells(i, "BL") <> "" Then
Rows(i).Delete
End If
Next i
Application.ScreenUpdating = True

End Sub

BL kolonunda hem dolu hem boş hücreler var. Dolu olan hücreye ait satırı silmek istiyorum ama bütün kayıtları siliyor? Yardımlarınızı rica ederim
 
çalışma sayfanızdaki dolu satırlar arasında kalan boş satırları silmek için “Araçlar > Makro > Makrolar” yolunu izleyin. Burada oluşturduğumuz “Sil” adındaki makroyu görebilirsiniz. Seçili hale getirip sağdaki “Çalıştır” butonuna tıklayın. Artık belgenizdeki boş satırlar temizlenmiştir. İsterseniz makroyu çalıştırmak için belgenizde bir buton da oluşturabilirsiniz.


Sub Sil()
Application.ScreenUpdating = False
Dim i As Integer
t = ActiveSheet.UsedRange.Rows.Count
For i = t To 1 Step -1
If IsEmpty(Cells(i, 1)) And IsEmpty(Cells(i, 2)) And IsEmpty(Cells(i, 3)) And IsEmpty(Cells(i, 4)) Then
Rows(i).Delete Shift:=xlUp
End If
Next i
Application.ScreenUpdating = True
End Sub
 
sadece dolu olanları silmekle tamamını silmek arasında bir fark var mı?
 
boş satırları silmek değil amacım kolondaki dolu olan hücrenin ait olduğu satırı silmek
 
dosyayı ekleme şansın varsa öyle bakalım
 
Dosya ektedir. Saece AG kolununda dol olanları buldurup sarı satırları silmek istiyorum
 

Ekli dosyalar

Kod:
Sub satırsil()
On Error Resume Next
[B1:B20].SpecialCells(2, 23).EntireRow.Delete
End Sub
Bu şekilde bir deneyiniz.
 
Hücre adreslerini kendinize göre değiştiriniz.
 
Sub satırsil()
On Error Resume Next
[BL2:BL800].SpecialCells(2, 23).EntireRow.Delete
End Sub
şeklinde yazdım. Birşeyler sildi ama benim ekte istediğim şekilde olmadı
Bu arada 2 ve 23 nedir?
 
Arkadaşlar merhaba.
Ekli dosyada [a1:e20] arasında değerler var ancak bu değerler arasındaki boşlukları yok etmek istiyorum. Eğer hücre boş ise alttaki hücre bir yukarı çıkacak.
 

Ekli dosyalar

Sub satırsil()
On Error Resume Next
[BL2:BL800].SpecialCells(2, 23).EntireRow.Delete
End Sub
şeklinde yazdım. Birşeyler sildi ama benim ekte istediğim şekilde olmadı
Bu arada 2 ve 23 nedir?

eklediğiniz örnekte BL sütunu boş. dolayısı ile işlem yapmaması, yani hiç bir satırı silmemesi lazım
 
Arkadaşlar merhaba.
Ekli dosyada [a1:e20] arasında değerler var ancak bu değerler arasındaki boşlukları yok etmek istiyorum. Eğer hücre boş ise alttaki hücre bir yukarı çıkacak.

aşağıdaki işinize yarar.

yalnız hücrelerin gerçekten boş olması lazım. (sizin örnekte boş görünmekle birlikte değil.)

Kod:
Range("A1:E20").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
 
Teşekkür ederim Sn mancubus.
Formulden alıntı olduğu için bu şekil oldu.
 
AG sütünunu dikkate alın. sadece dolu olan satır silinecek
 
AG sütünunu dikkate alın. Sadece dolu olan satır silinecek. Yapmak istediğim şu. 8000 satırlık bir veri var. Bunların içinde örnekte olduğu gibi iptal edeceğim (sileceğim) satırlar var. Bunları tek tek manuel olarak seçiyorum. Birtakım kontrollerden sonra da siliyorum. Bu nedenle bu dolu olan hücreleri tek tek işaretlemeyip makro ile seçtirip silmek istiyorum. Umarım anlatabilmişimdir.

Teşekkürler.
 
ben böyle bir şey için makro kullanmazdım. evet biraz zaman alabilir. makroda da alır zaten.

ingilizce xl kullandığınız için:

menüden sırayla data - filter - autofilter.
AG sütunu için filtre'den Nonblanks.

başlık satırı hariç filtrelenen satırları satır no'dan seç. sağ klik, sil, tamam.


yok illa makro olacak derseniz:

Kod:
Sub DoluSatSil()

With Application
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
    .DisplayAlerts = False
End With

Dim sat As Long

For sat = Cells(Rows.Count, "AG").End(xlUp).Row To 2 Step -1
    If Len(Trim(Cells(sat, "AG"))) > 0 Then Rows(sat).Delete
Next
    
With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    .DisplayAlerts = True
End With

End Sub
 
verileriniz başka bir uygulamadan kopyalanmış. bu nedenle boş gibi görünen satırlarda görünmeyen karakterler var.

"non-printing characters" bulunan hücrelerin satırlarının silinmesini sağlamak üzere kodu şu şekilde düzenledik.

Kod:
If Len(Trim(Cells(sat, "AG"))) > 0 Then Rows(sat).Delete
 
Çok teşekkür ederim. Bir sorum daha olacak. Yine AG kolonunu örnek alırsak. Bir önceki mesajımda belirttiğim gibi veri büyük. Bu veri içinde AG koloununda dolu olan hücreyi bulup o satırı mesela sarı yapabilir miyiz? Örnekteki gibi manuel değilde bulup sarıya boyayacak. Yardımlarınız için teşekkür ederim
 
Geri
Üst