• DİKKAT

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

listwiev da checkbox ile seçim yapmak

Katılım
5 Eylül 2007
Mesajlar
37
Excel Vers. ve Dili
türkçe 2008
Sayın Uzmanlar ekteki listwiev dosyamda Ana Gider Grubunda checkboxla seçim yaptıktansonra(birden fazla olabilir) yine Dönem Seçiminden ayları seçicem ancak hangi ayı yada ayları seçersem o kolonlar Münferit Giderler kolonundan sora gelecek böylece 2 veya daha fazla ayı mukayese edebilicem. Ama ne yazık ki beceremiyorum listbox ve combobox ile yaptım ancak çoklu yapamadım listwiev daha iyi olacak ama o da beni aştı bana yardım edebilir misiniz?
 
Listele adlı butonun Click olayını aşağıdaki gibi kodlarsanız, istediğinizi yapabilirsiz.

NOT : Orjinal dosyanızdaki, Listview'in ColumnHeaders'ları manuel olarak Hidden yapılmış. Bunu düzelttim. (Bu projede, checkbox kullanımının sağlıklı olmadığını düşünüyorum.Ama yine de, orjinal dosyanızın bozulmaması için bunlarla işlem yaptım)

DİKKAT : CheckBox captionları ile sayfa üzerindeki taranacak bilgiler arasında uyuşmazlık var. Örneğin CheckBox'a "Eylül " yazmanıza rağmen, sayfa üzerinde bu değer "Eylül" olarak görülüyor. Onun için herhangi bir değeri görüntüleyemezsiniz bunların tutarlılığını kontrol ediniz.

Örnek, dosyayı inceleyiniz.

Kod:
Private Sub CommandButton1_Click()
Dim arrKriterG() As Variant
Dim arrKriterA()
Dim i%, y%, kacinci_sira_Ay1%, kacinci_sira_Ay2%
Dim ctrl As Control
Dim sh As Worksheet
For Each ctrl In UserForm1.Frame1.Controls
    If ctrl.Value = True Then
       y = y + 1
       ReDim Preserve arrKriterG(1 To y)
       arrKriterG(y) = ctrl.Caption
    End If
Next
If y = 0 Then: Exit Sub
y = 0
For Each ctrl In UserForm1.Frame2.Controls
    If ctrl.Value = True Then
       y = y + 1
       ReDim Preserve arrKriterA(1 To y)
       arrKriterA(y) = ctrl.Caption
    End If
Next
[COLOR=red]If y <= 1 Then: Exit Sub[/COLOR]
y = 0
Set sh = Sheets("PLANLAMA")
With ListView1
    .ListItems.Clear
    .ColumnHeaders.Clear
    .Gridlines = True
    .View = lvwReport
    .FullRowSelect = True
    .LabelEdit = lvwManual
     With .ColumnHeaders
        .Add , , sh.Cells(3, 2), 200
        .Add , , sh.Cells(3, 3), 250
        .Add , , arrKriterA(1), 100
        .Add , , arrKriterA(2), 100
     End With
End With
kacinci_sira_Ay1 = Application.WorksheetFunction.Match(arrKriterA(1), sh.Range("A3:O3"), 0)
kacinci_sira_Ay2 = Application.WorksheetFunction.Match(arrKriterA(2), sh.Range("A3:O3"), 0)
For i = 4 To sh.Cells(65536, 2).End(xlUp).Row
    For j = 1 To UBound(arrKriterG)
        If arrKriterG(j) = sh.Cells(i, 2) Then
           ListView1.ListItems.Add , , sh.Cells(i, 2)
           y = y + 1
           ListView1.ListItems(y).SubItems(1) = sh.Cells(i, 3)
           ListView1.ListItems(y).SubItems(2) = sh.Cells(i, 1).Offset(0, kacinci_sira_Ay1 - 1)
           ListView1.ListItems(y).SubItems(3) = sh.Cells(i, 1).Offset(0, kacinci_sira_Ay2 - 1)
        End If
    Next j
Next i
Set sh = Nothing
End Sub
 
Son düzenleme:
&#231;ok te&#351;ekk&#252;r ederim yard&#305;mlar&#305;n&#305;za ama ben &#231;al&#305;&#351;t&#305;ramad&#305;m

"run time error 9
subscript out of range"

hatas&#305; verdi acaba hata m&#305; yap&#305;yorum
 
say&#305;n fpc

bir de"(Bu projede, checkbox kullan&#305;m&#305;n&#305;n sa&#287;l&#305;kl&#305; olmad&#305;&#287;&#305;n&#305; d&#252;&#351;&#252;n&#252;yorum.Ama yine de, orjinal dosyan&#305;z&#305;n bozulmamas&#305; i&#231;in bunlarla i&#351;lem yapt&#305;m) yazm&#305;&#351;s&#305;n&#305;z peki &#231;oklu bir se&#231;im yapmak i&#231;in ba&#351;ka &#246;neriniz var m&#305; ben &#231;ok acemiyim sizlerden &#246;&#287;rendiklerimle ancak bu kadar&#305;n&#305; yapabildim de yard&#305;m ederseniz &#231;ok sevinirim
 
Bir de &#231;ok yoruyorum sizi ama burada sadece 2 ay se&#231;ebiliyoruz ben halbuki bir veya birden fazla ya da hepsini se&#231;ebilmek istiyordum.
 
2 Nolu mesajdaki dosyay&#305; revize ettim. Tekrar inceleyiniz.

Bir hata kontrol&#252;n&#252; yanl&#305;&#351; tan&#305;mlam&#305;&#351;&#305;z. Bunu k&#305;rm&#305;z&#305; ile yine ayn&#305; mesajda g&#246;sterdim.

&#199;oklu se&#231;imler i&#231;in, listbox nesnesini kullanabilirsiniz. Listbox'a da sayfa &#252;zerindeki bilgileri y&#252;klerseniz, hata yapma &#351;ans&#305;n&#305;z o denli azal&#305;r. Hem de daha esnek bir kodlama olur. Yar&#305;n &#246;rne&#287;in "&#199;erez Paras&#305;" diye bir gider kalemi a&#231;san&#305;z, bunun i&#231;in UF'yi yeniden tasarlanman&#305;z gerekecek.
 
Bir de çok yoruyorum sizi ama burada sadece 2 ay seçebiliyoruz ben halbuki bir veya birden fazla ya da hepsini seçebilmek istiyordum.

Buna gerek var mı bilemiyorum. Zaten sayfanın üzerinde bunlar var. Basit süzme, satır/sütun gizleme ile bu dediğinizi yapabilirsiniz.

Ben anladım ki, örneğin "Ocak ve Mayıs'ı yan yan görmek ve sayfada gizleme gösterme yapmadan UF'de bunu yapmak istiyorsunuz" şeklinde anladım.
 
evet hakl&#305;s&#305;n&#305;z ben de ilk ba&#351;ta listbox kulland&#305;m ama o tek s&#252;tun oldu&#287;u i&#231;in liste a&#351;a&#287;&#305; uzuyor t&#252;m kalemleri topluca g&#246;remiyordum sonra bunu yapt&#305;m. son yollad&#305;&#287;&#305;n&#305;z d&#252;zeltme i&#231;in te&#351;ekk&#252;rler. ama ben hala bir ya da birden fazla ay&#305; se&#231;me yolunu bulamad&#305;m.yard&#305;mc&#305; olur musunuz
 
Ay seçimini de opsiyonel yaptım. Artık birden fazla sayıda ay seçimi yapabiliyorsunuz.

Ekteki dosyayı inceleyiniz.
 
Son düzenleme:
&#231;ok te&#351;ekk&#252;r ederim s&#252;per yapm&#305;&#351;s&#305;n&#305;z &#231;ok oluyorum ama sadece tek bir ay se&#231;emiyorum ama bunu da &#231;&#246;zebilir misiniz ?
 
&#231;okte&#351;ekk&#252;r ederim ellerinize sa&#287;l&#305;k
 
Aynı konu başlığı için, bu dosyayı referans almak istiyorum. Yeni konu açmak istemedim. Bu dosyayı nasıl bulabilirim
 
Geri
Üst