"c" sutununda metin içeren ve boş olan satırların silinmesi

Katılım
22 Ağustos 2007
Mesajlar
30
Excel Vers. ve Dili
2003 türkçe
Merhaba

Arkadaşlar Excel de "c" sutununa bakıp "c" sutununda boş olan ve metin içeren satırları otomatik silecek bir koda ihtiyacım var. yardımcı olabilirseniz sevinirim.

elimde bir kod var bu kod sadece boş olanları siliyor buna metin olanlarıda silmesiniekleyebilirmiyiz.

Sub DeleteBlankRowsAndColumns()
'A1 hücresinden dolu olan son hücreye kadar olan alanı seç
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Dim i As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
'Tüm Satırlarda CountA(hücrenin içi dolu mu?)
'fonksiyonu 0 döndürüyorsa sil
For i = Selection.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Delete
End If
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
BosveMetinSil

Sub BosveMetinSil()
Dim Arr As Variant
Dim Rng As Range
Dim i As Long
Arr = Array(xlCellTypeBlanks, xlCellTypeConstants)
For i = 0 To UBound(Arr)
Set Rng = Columns("C:C").SpecialCells(Arr(i), 22)
If Not Rng Is Nothing Then
Rng.EntireRow.Delete
End If
Next i
End Sub
 
Katılım
22 Ağustos 2007
Mesajlar
30
Excel Vers. ve Dili
2003 türkçe
cevabınız için teşekkür ediyorum kodu denedim önce tam istediğimi yapıyor sonra hepsini siliyor
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Merhaba

Merhaba

Bende bir sorun çıkmıyor.Birde bunu dener misiniz..

Sub BosveMetinSil2()

Dim deleteRange As Range
With Range("C:C")
On Error Resume Next
Set deleteRange = .SpecialCells(xlCellTypeBlanks)
Set deleteRange = .SpecialCells(xlCellTypeConstants, xlErrors + xlTextValues + xlLogical)
Set deleteRange = Application.Union(deleteRange, .SpecialCells(xlCellTypeBlanks))
deleteRange.EntireRow.Delete
On Error GoTo 0

End With

End Sub


Yada sadece metin sil için

Sub SayıOlmayanıSil()
Dim LASTROW As Long
Dim I As Long
LASTROW = Cells(Rows.Count, "C").End(xlUp).Row
For I = LASTROW To 2 Step -1
If (Not (IsNumeric(Cells(I, "C")))) Then
Rows(I).Delete
End If
Next I
End Sub
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Alternatif olarak bu kodları kullanabilirsiniz;
Kod:
[FONT="Trebuchet MS"]Sub Emre()
    Dim i%
    For i = Range("C65536").End(3).Row To 1 Step -1
        If Not IsNumeric(Cells(i, 3)) Or Cells(i, 3) = "" Then
            Rows(i).Delete
        End If
    Next i
    i = Empty
End Sub[/FONT]
 
Katılım
22 Ağustos 2007
Mesajlar
30
Excel Vers. ve Dili
2003 türkçe
merhaba

arkadaşlar verdiğiniz son kodlar sorunu çözdü çok teşekkür ediyorum. Emeğinize sağlık.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Rica ederiz, iyi günler.
 
Katılım
20 Mayıs 2014
Mesajlar
34
Excel Vers. ve Dili
Excel 2007 - Türkçe
Koşullu satır silme

Çok sayıda etiket numaram var ve bazı veri satırlarım boş. Aynı etiket numalarını tekrar etmemek için boş satırların silinmesine ihtiyacım var. Makro kullanamadığım için formüllere ihtiyacın var.
Öncelikli olarak veri olmayan boş satırların silinmesini istiyorum (3. ve 4. satır gibi) böylece her label no'dan 1 tane kalsın istiyorum.
Bunun yanında D1 ya da D1-1-1 ya da D1-1-1-s ile başlayanları nasıl ard arda getirebilirim.
 

Ekli dosyalar

Üst