• DİKKAT

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

Değeri "0" olan hücre

  • Konbuyu başlatan Konbuyu başlatan krmtr
  • Başlangıç tarihi Başlangıç tarihi
Katılım
10 Nisan 2008
Mesajlar
38
Excel Vers. ve Dili
2007 türkçe
A sütununda değeri sıfır olan hücreyi yurarıya sürükleyerek silmesini istiyorum.
Şimdiden teşekkürler.
 
Merhaba,

Module kopyalarak çalıştırınız..

Kod:
Sub SıfırSil()
 
Dim son As Long, i As Long
 
son = Cells(Rows.Count, "A").End(xlUp).Row
For i = son To 1 Step -1
    If Cells(i, "A") = 0 And Cells(i, "A") <> "" Then
        Rows(i).Delete Shift:=xlUp
    End If
Next i
 
End Sub
.
 
A sütununda değeri sıfır olan hücreyi yurarıya sürükleyerek silmesini istiyorum.
Şimdiden teşekkürler.

Merhaba,dediğiniz aşağıdaki kodlarla yapılabilir:


Sub Sifirlari_sil()
Dim i As Integer
For i = 1 To 10
If Cells(i, "a").Value = 0 Then
Cells(i, "a").Delete shift:=xlUp






End If
Next i
End Sub
 
Merhaba,

Module kopyalarak çalıştırınız..

Kod:
Sub SıfırSil()
 
Dim son As Long, i As Long
 
son = Cells(Rows.Count, "A").End(xlUp).Row
For i = son To 1 Step -1
    If Cells(i, "A") = 0 And Cells(i, "A") <> "" Then
        Rows(i).Delete Shift:=xlUp
    End If
Next i
 
End Sub
.

Pardon Ömer Bey sizin yazdığınızı görmemiştim
 
Pardon Ömer Bey sizin yazdığınızı görmemiştim

Sorun değil Sayın truvali27m. Yalnız satır silme de artan döngü kullanırsanız hata alırsınız. Bu yüzden dönügüyü sondan başa doğru kurmak daha doğru olacaktır.

İyi çalışmalar..

.
 
Sorun değil Sayın truvali27m. Yalnız satır silme de artan döngü kullanırsanız hata alırsınız. Bu yüzden dönügüyü sondan başa doğru kurmak daha doğru olacaktır.

İyi çalışmalar..

.

Doğru diyorsunuz Ömer Bey,ben de öğrenmiş oldum.Kodları daha yeni öğreniyoruz ama ince detaylarını da sizler sayesinde öğrenmiş oluyoruz.Size de iyi çalışmalar.
 
Merhaba,

Module kopyalarak çalıştırınız..

Kod:
Sub SıfırSil()
 
Dim son As Long, i As Long
 
son = Cells(Rows.Count, "A").End(xlUp).Row
For i = son To 1 Step -1
    If Cells(i, "A") = 0 And Cells(i, "A") <> "" Then
        Rows(i).Delete Shift:=xlUp
    End If
Next i
 
End Sub
.

Teşekkürler tekrar. 500.000 satırlık veride uzunsürecek ama başlattım çalışmaya. :)
 
Teşekkürler tekrar. 500.000 satırlık veride uzunsürecek ama başlattım çalışmaya. :)

Birde aşağıdaki kodları denermisiniz..

Kod:
Sub SifirSil()
 
Dim son As Long
son = Cells(Rows.Count, "A").End(xlUp).Row
On Error Resume Next
 
    With Range("A1:A" & son)
        .SpecialCells(xlCellTypeBlanks) = "-+|%!"
        .Replace 0, "", xlWhole
        .SpecialCells(xlCellTypeBlanks).Delete
        .Replace "-+|%!", "", xlWhole
    End With
 
End Sub
.
 
Bu kod nisbetten hızlı olabilir.
Kod:
Sub Makro3()
[a1:a50000].Replace What:=0, Replacement:=Delete
[a1:a50000].SpecialCells(4).Rows.Delete Shift:=xlUp
End Sub
 
Birde aşağıdaki kodları denermisiniz..

Kod:
Sub SifirSil()
 
Dim son As Long
son = Cells(Rows.Count, "A").End(xlUp).Row
On Error Resume Next
 
    With Range("A1:A" & son)
        .SpecialCells(xlCellTypeBlanks) = "-+|%!"
        .Replace 0, "", xlWhole
        .SpecialCells(xlCellTypeBlanks).Delete
        .Replace "-+|%!", "", xlWhole
    End With
 
End Sub
.

"A" sütunundaki bütün verileri kaybettim.
 
Merhaba,

Module kopyalarak çalıştırınız..

Kod:
Sub SıfırSil()
 
Dim son As Long, i As Long
 
son = Cells(Rows.Count, "A").End(xlUp).Row
For i = son To 1 Step -1
    If Cells(i, "A") = 0 And Cells(i, "A") <> "" Then
        Rows(i).Delete Shift:=xlUp
    End If
Next i
 
End Sub
.

Bide ben bu kodu çalışma kitabı içerisindeki tüm sayfalar için aynı anda çalıştırabilir miyim?
 
Ekte satır eksiltilmiş ve kodsuz olarak mevcut
İlginiz için teşekkürler.
 

Ekli dosyalar

Kodlar düzgün çalıştı. Sadece 0 olanları sildi.

Problem nedir ?

.
 
Karışıklık olmuş. Diğer koddan bahsediyormuşsunuz.

Seçim alanı büyük olduğu için problem çıkardı. Daha müsait bir zamanda o konuyu araştırırım.

Eğer verilerin sıralamasında bir sakınca yoksa aşağıdaki kodlar diğerlerine göre çok daha hızlı silecektir.

Kod:
Sub SıfırSil()
 
Dim son As Long, say As Long
 
son = Cells(Rows.Count, "A").End(xlUp).Row
 
Range("A1:A" & son).Sort Range("A1")
If Range("A1") <> 0 Then Exit Sub
 
say = WorksheetFunction.CountIf(Range("A1:A" & son), 0)
 
Rows("1:" & say).Delete
 
End Sub
 
Birde aşağıdaki kodları denermisiniz..

Kod:
Sub SifirSil()
 
Dim son As Long
son = Cells(Rows.Count, "A").End(xlUp).Row
On Error Resume Next
 
    With Range("A1:A" & son)
        .SpecialCells(xlCellTypeBlanks) = "-+|%!"
        .Replace 0, "", xlWhole
        .SpecialCells(xlCellTypeBlanks).Delete
        .Replace "-+|%!", "", xlWhole
    End With
 
End Sub
.

Bu kodlar mı düzgün çalıştı.
İlk verdikleriniz çalışıyor sorun yok.
Bunu da denememi istediğiniz için denedim ama A sütunundaki verilerin tatamı silindi ve yerine B sütunundaki veriler geçti.
 
Geri
Üst