• DİKKAT

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

Listviewde sıfır olan satırın gizlenmesi

Katılım
17 Nisan 2010
Mesajlar
20
Excel Vers. ve Dili
İŞYERİNDE: OFFICE-2016
EVDE : OFFICE-2016
Arkadaşlar merhaba;
Ekte göndermiş olduğum örnekte ayrıntılı mizan butonuna tıklayınca açılan userformda ki listview'e excel dosyasındaki AYRINTILI_MIZAN sayfasından veri aldırıyorum. benim sorum; userform üzerine koyulan bir buton yardımı ile bu verilerin hem listviewde hemde excel sayfasında bakiye sütununda sıfır olan satırların gizlenmesini sağlayabilirmiyiz.
Yardımcı olan tüm arkadaşlarıma teşekkür ederim.
 

Ekli dosyalar

Userform18 deki kodların hepsini siliniz ve aşağıdaki kodları ekleyerek denermisiniz.

Private Sub CommandButton1_Click()
Unload UserForm18
Sheets("FIS_GIRISI").Select
End Sub
Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then
deg1 = 0
bos_satirlari_gizle
ToggleButton1.Caption = "SIFIRLARI GİZLE"
Else
deg1 = 1
bos_satirlari_goster
ToggleButton1.Caption = "SIFIRLARI GÖSTER"
End If
End Sub
Private Sub UserForm_Initialize()
Dim lngFormHwnd As Long
Dim lngFormStyle As Long
If Application.Version < 9 Then
lngFormHwnd = FindWindow("THUNDERXFRAME", Me.Caption)
Else
lngFormHwnd = FindWindow("THUNDERDFRAME", Me.Caption)
End If
lngFormStyle = GetWindowLong(lngFormHwnd, (-16))
lngFormStyle = lngFormStyle And Not &H800000
SetWindowLong lngFormHwnd, (-16), lngFormStyle
DrawMenuBar lngFormHwnd
bos_satirlari_goster
End Sub

Sub bos_satirlari_goster()
ListView1.ListItems.Clear
Dim i As Byte, lv As ListView, k As Long, x As Long
Set lv = ListView1
lv.View = lvwReport
lv.Gridlines = True
lv.FullRowSelect = True
lv.ColumnHeaders.Add , , "HESAP KODU", 70
lv.ColumnHeaders.Add , , "HESAP ADI", 200
lv.ColumnHeaders.Add , , "MİKTAR GİREN", 70, 1
lv.ColumnHeaders.Add , , "MİKTAR ÇIKAN", 70, 1
lv.ColumnHeaders.Add , , "MİKTAR BAKİYE", 70, 1
lv.ColumnHeaders.Add , , "BORÇ", 80, 1
lv.ColumnHeaders.Add , , "ALACAK", 80, 1
lv.ColumnHeaders.Add , , "BAKİYE", 80, 1
For k = 3 To 650
x = x + 1
lv.ListItems.Add , , Cells(k, 1).Value
lv.ListItems(x).Bold = True
For i = 2 To 8
If i <= 5 Then
lv.ListItems(x).SubItems(i - 1) = Cells(k, i).Value
lv.ListItems(x).ListSubItems(i - 1).Bold = True
lv.ListItems(x).ListSubItems(i - 1).Text = Format(ListView1.ListItems(x).ListSubItems(i - 1), "#,##0")
Else
lv.ListItems(x).SubItems(i - 1) = Cells(k, i).Value
lv.ListItems(x).ListSubItems(i - 1).Bold = True
lv.ListItems(x).ListSubItems(i - 1).Text = Format(ListView1.ListItems(x).ListSubItems(i - 1), "#,##0.00")
End If
Next i
Next k
End Sub

Sub bos_satirlari_gizle()
ListView1.ListItems.Clear
Dim i As Byte, lv As ListView, k As Long, x As Long
Set lv = ListView1
lv.View = lvwReport
lv.Gridlines = True
lv.FullRowSelect = True
lv.ColumnHeaders.Add , , "HESAP KODU", 70
lv.ColumnHeaders.Add , , "HESAP ADI", 200
lv.ColumnHeaders.Add , , "MİKTAR GİREN", 70, 1
lv.ColumnHeaders.Add , , "MİKTAR ÇIKAN", 70, 1
lv.ColumnHeaders.Add , , "MİKTAR BAKİYE", 70, 1
lv.ColumnHeaders.Add , , "BORÇ", 80, 1
lv.ColumnHeaders.Add , , "ALACAK", 80, 1
lv.ColumnHeaders.Add , , "BAKİYE", 80, 1
For k = 3 To 650
If IsNumeric(Sheets("AYRINTILI_MIZAN").Cells(k, "H").Value) = True Then
If Round(Sheets("AYRINTILI_MIZAN").Cells(k, "H").Value, 2) > 0.01 Then


x = x + 1
lv.ListItems.Add , , Cells(k, 1).Value
lv.ListItems(x).Bold = True
For i = 2 To 8
If i <= 5 Then
lv.ListItems(x).SubItems(i - 1) = Cells(k, i).Value
lv.ListItems(x).ListSubItems(i - 1).Bold = True
lv.ListItems(x).ListSubItems(i - 1).Text = Format(ListView1.ListItems(x).ListSubItems(i - 1), "#,##0")
Else
lv.ListItems(x).SubItems(i - 1) = Cells(k, i).Value
lv.ListItems(x).ListSubItems(i - 1).Bold = True
lv.ListItems(x).ListSubItems(i - 1).Text = Format(ListView1.ListItems(x).ListSubItems(i - 1), "#,##0.00")
End If
Next i
End If
End If
Next k
End Sub
 
Halit Bey öncelikle ilginiz için teşekkür ederim.
Userform18 deki Kodların tamamını sildim verdiğiniz kodları yazdım ancak bakiye sütununda sıfır olmayan satırları gizledi ve bazı sıfır olan satırlarda gizlenmedi
 
bakiye sutünunuz j Sutün olarak yazmıştım ben siz kendiniz hangi sutünsa onu yazarsanız doğru vermesi lazım.

If Val(Sheets("FIS_GIRISI").Cells(k, "J").Value) > 0 Then
 
Halit Bey bende sorunu farkettim ve hallettim teşekkür ederim.
Verileri AYRINTILI_MIZAN sayfasından aldığı için
If Val(Sheets("AYRINTILI_MIZAN").Cells(k, "H").Value) > 0 Then
olarak düzenledim.
Tekrar teşekkür ederim..
 
2 nolu mesejdaki kodu düzelttim

iyi çalışmalar
 
İlginiz ve emekleriniz için çok teşekkürler.saygılar...
 
Arkadaşlar bu sorun tam anlamıyla çözüldü die yazmıştım ancak şimdi dikkatimi çeken bir durum oluştu. Mizandaki sıfırlı satırları gizliyor ancak bakiye rakamı 0,67 gibi bir rakam olduğunda bu rakamları da sıfır gibi görüyor ve gizliyor bununla ilgili olarak yapabileceğimiz bir durum varmıdır acaba?
Yardımlarınız için teşekkür ederim.
 
halit hocam söylediğiniz düzeltmeyi yaptım olmadı ancak makronun başındaki "Val" komutunu çıkartınca yani ;
If (Sheets("AYRINTILI_MIZAN").Cells(k, "H").Value) > 0 Then
şeklinde değiştirince sonuçlarda kuruşları da görmeye başladı.
bu yapmış olduğum düzeltmenin mantığını anlamamış olsamda şimdilik sonuçlar doğru çıkıyor.
İlginize çok teşekkür eder saygılarımı sunarım...
 
halit hocam söylediğiniz düzeltmeyi yaptım olmadı ancak makronun başındaki "Val" komutunu çıkartınca yani ;
şeklinde değiştirince sonuçlarda kuruşları da görmeye başladı.
bu yapmış olduğum düzeltmenin mantığını anlamamış olsamda şimdilik sonuçlar doğru çıkıyor.
İlginize çok teşekkür eder saygılarımı sunarım...

val fonksiyonu sayı değerlerini sıfıra kadar yuvarlıyor yani virgülten sonraki kuruşları yok sayıyor en küçük sayı değeri sıfırdır hücre boş olsa bile sayı değeri sıfırdır.
 
Geri
Üst