Skip to main content

AccessTr.neT


Sıfır Bakiyeli Satırları Silme

ercansahiner61
ercansahiner61
10
559

Sıfır Bakiyeli Satırları Silme

#7
Ek olsaydı iyi olacaktı bunca mesaja gerek kalmadan bence.
Cevapla
#8
(13/11/2022, 11:49)feraz yazdı: Ek olsaydı iyi olacaktı bunca mesaja gerek kalmadan bence.

Feraz hocam teşekkür ediyorum.  atoykan bey sağolsun yaptı ama bir sorun çıktı.
sizde ek gönderilse iyi olur yazdığınız için çalışmayı EKTE GÖNDERDİM.

Tabloda (0) sıfır Bakiyeli satırlar bulunduğunda güzel çalışıyor ancak sıfır değer yokken makro çalıştırıldığında Filtreleme yapıyor ve tüm veriler gizleniyor hiçbir hücre bulunamadı hatası veriyor, sıfır bakiye olmadığında macro çalıştırılması halinde mesaj olarak sıfır bakiyeli hesap bulunamadı uyarısı verip tamam düğmesine basılınca filtrenin kaldırılarak tüm satırların gösterilmesi sağlanabiliirse çok iyi olur,

Şimdiden yardımlarınız ve ilginiz için teşekkür ederim.
.rar Sıfır Bakiye satır sil.rar (Dosya Boyutu: 29,25 KB | İndirme Sayısı: 2)
Son Düzenleme: 20/11/2022, 14:00, Düzenleyen: ercansahiner61.
Cevapla
#9
kodunuzu aşağıdaki şekilde revize edin

Sub SıfırBakiyeliHesaplarıSİL()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects(1)
Dim dvrg As Range
 
    With tbl
        If .ShowAutoFilter Then
            If .AutoFilter.FilterMode Then .AutoFilter.ShowAllData
        End If
        .Range.AutoFilter 7, "0,00"
        On Error Resume Next
            Set dvrg = tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
        On Error GoTo 0
        .AutoFilter.ShowAllData
    End With
   
  ActiveSheet.ListObjects("Tablo4").Range.AutoFilter Field:=7
  Range("B2").Select
End Sub
Cevapla
#10
Dosyadaki Tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete bu kodun önüne If WorksheetFunction.CountIf(Range("G:G"), "0") > 0 Then ekleyip deneyin
Yani alttaki gibi olacak.

If WorksheetFunction.CountIf(Range("G:G"), "0") > 0 Then Tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Cevapla
#11
@atoykan abeyin kodunu alttaki gibi yaparsanız bence daha iyi olur.
Yani kod başka sayfada çalışırsa hata olur.

Sub SýfýrBakiyeliHesaplarýSÝL()
Dim Tbl As ListObject
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Vadeli Hesap")
Set Tbl = .ListObjects(1)
.ListObjects("Tablo4").Range.AutoFilter Field:=7, Criteria1:="0,00"
If WorksheetFunction.CountIf(.Range("G2:G" & Rows.Count), "0") > 0 Then Tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
.ListObjects("Tablo4").Range.AutoFilter Field:=7
.Range("B2").Select
End With
Application.ScreenUpdating = True
End Sub
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da