[Yardım]  ListBox'taki veriyi filtrelemeye ihtiyacım var basit

Verilerinizi listeleyebileceğiniz liste kutusu

ListBox'taki veriyi filtrelemeye ihtiyacım var basit

İleti#1)  mustafauzun » 05 Ekm 2020 13:50

Merhabalar,

Ürün stok planlama programı yazıyorum Excel VBA'dan. Bir yerde takıldım. Stoğumdaki ürünleri listboxta listeliyorum ekle ve çıkarda yapabiliyorum. Fakat listede 100 adet ürün olduğu zaman filtreleyerek sadece seçtiğim ürünlerin listede gözüküp bunlardan düşüm veya ekleme yapmak istiyorum.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
mustafauzun
Yeni Başlamış
 
Kayıt: 05 Ekm 2020 12:22
Meslek: Endüstri Mühendisi 4. Sınıf Öğrencisi
Yaş: 22
İleti: 12
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Istanbul

Cevap: ListBox'taki veriyi filtrelemeye ihtiyacım var basit

İleti#2)  Miraç CAN » 05 Ekm 2020 14:57

ListBox'ta TextBox/ComboBox ile arama/süzme/listeleme konularında çok sayıda çözüm, kaynak, örnek mevcut, incelediniz mi?
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 803
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

Cevap: Cevap: ListBox'taki veriyi filtrelemeye ihtiyacım var

İleti#3)  mustafauzun » 05 Ekm 2020 16:57

Miraç CAN yazdı:ListBox'ta TextBox/ComboBox ile arama/süzme/listeleme konularında çok sayıda çözüm, kaynak, örnek mevcut, incelediniz mi?

evet hocam inceledim fakat benim ileri seviye vba bilgim olmadığı için anlayamıyorum. genelde karşıma çıkanlar excel sayfalarındaki verileri filtrelemek yapılan makrolar. ben ise listboxta anlık gözüksün istiyorum.
Kullanıcı avatarı
mustafauzun
Yeni Başlamış
 
Kayıt: 05 Ekm 2020 12:22
Meslek: Endüstri Mühendisi 4. Sınıf Öğrencisi
Yaş: 22
İleti: 12
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Istanbul

Cevap: ListBox'taki veriyi filtrelemeye ihtiyacım var basit

İleti#4)  Miraç CAN » 06 Ekm 2020 09:04

Deneyin:
Kod: Tümünü seç
Private Sub CommandButton1_Click()
If Me.kalitebox = vbNullString And Me.urunbox = vbNullString Then
    Me.ListBox1.RowSource = "urunstok!A3:I" & Sheets("urunstok").Cells(Rows.Count, 1).End(3).Row
    Me.ListBox1.ColumnHeads = True: Exit Sub
End If
Dim Filtre As Variant, Rng As Range, Rw&, Cl&
Me.ListBox1.ColumnHeads = False
Me.ListBox1.RowSource = Empty
ReDim Data(1 To Sheets("urunstok").Cells(Rows.Count, 1).End(3).Row - 2) As Variant
For Each Rng In Sheets("urunstok").Range("A3:I" & Sheets("urunstok").Cells(Rows.Count, 1).End(3).Row)
    Data(Rng.Row - 2) = Data(Rng.Row - 2) & Rng.Value & "|"
Next Rng
If Not Me.kalitebox = vbNullString Then _
    Filtre = Filter(Data, "|" & Me.kalitebox.Text & "|", True, vbTextCompare)
If Not Me.urunbox = vbNullString Then
    If IsEmpty(Filtre) Then Filtre = Data
    Filtre = Filter(Filtre, "|" & Me.urunbox.Text & "|", True, vbTextCompare)
End If
If Not IsEmpty(Filtre) Then
    For Rw = LBound(Filtre) To UBound(Filtre)
        For Cl = 0 To UBound(Split(Filtre(Rw), "|")) - 1
            Me.ListBox1.AddItem
            Me.ListBox1.List(Rw, Cl) = Split(Filtre(Rw), "|")(Cl)
    Next Cl, Rw
End If
End Sub
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 803
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Cevap: ListBox'taki veriyi filtrelemeye ihtiyacım var

İleti#5)  mustafauzun » 07 Ekm 2020 08:07

Miraç CAN yazdı:Deneyin:
Kod: Tümünü seç
Private Sub CommandButton1_Click()
If Me.kalitebox = vbNullString And Me.urunbox = vbNullString Then
    Me.ListBox1.RowSource = "urunstok!A3:I" & Sheets("urunstok").Cells(Rows.Count, 1).End(3).Row
    Me.ListBox1.ColumnHeads = True: Exit Sub
End If
Dim Filtre As Variant, Rng As Range, Rw&, Cl&
Me.ListBox1.ColumnHeads = False
Me.ListBox1.RowSource = Empty
ReDim Data(1 To Sheets("urunstok").Cells(Rows.Count, 1).End(3).Row - 2) As Variant
For Each Rng In Sheets("urunstok").Range("A3:I" & Sheets("urunstok").Cells(Rows.Count, 1).End(3).Row)
    Data(Rng.Row - 2) = Data(Rng.Row - 2) & Rng.Value & "|"
Next Rng
If Not Me.kalitebox = vbNullString Then _
    Filtre = Filter(Data, "|" & Me.kalitebox.Text & "|", True, vbTextCompare)
If Not Me.urunbox = vbNullString Then
    If IsEmpty(Filtre) Then Filtre = Data
    Filtre = Filter(Filtre, "|" & Me.urunbox.Text & "|", True, vbTextCompare)
End If
If Not IsEmpty(Filtre) Then
    For Rw = LBound(Filtre) To UBound(Filtre)
        For Cl = 0 To UBound(Split(Filtre(Rw), "|")) - 1
            Me.ListBox1.AddItem
            Me.ListBox1.List(Rw, Cl) = Split(Filtre(Rw), "|")(Cl)
    Next Cl, Rw
End If
End Sub


Miraç hocam öncelikle yardımınız için çok teşekkür ederim. Tam istediğim format buydu. Yalnız filtreleye bastığımda headerler yok oluyor bunun için 7. satırdaki;

Me.ListBox1.ColumnHeads = False kodunu True yaptığımda headerler gözüküyor fakat bu seferde headerlerin içindeki yazılar gözükmüyor.

2. Olarak filtreledikten sonra ekleme veya çıkarma işlemi yaptığım zaman veriyi filtreli gösterimdeyken güncellemiyor. Ancak filtreleme kutularını boşaltıp filtrele dediğim zaman ana listeyi gösterince güncel veriyi görebiliyorum.
Kullanıcı avatarı
mustafauzun
Yeni Başlamış
 
Kayıt: 05 Ekm 2020 12:22
Meslek: Endüstri Mühendisi 4. Sınıf Öğrencisi
Yaş: 22
İleti: 12
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Istanbul

Cevap: ListBox'taki veriyi filtrelemeye ihtiyacım var basit

İleti#6)  Miraç CAN » 13 Ekm 2020 15:15

ColumnHeads özelliği sadece RowSource özelliği ile kullanılınca başlıklar gelir, AddItem özelliği ile birlikte RowSource kullanılamadığından maalesef bu mümkün olamaz.
Bunu yerine ListView kullanırsanız olur ama.

Ekle/Çıkar işlemlerinizi yaptığınız kodların son satırına CommandButton1_Click yazın, düğme tetiklenir ve süzme işlemi yenilenir.
Kullanıcı avatarı
Miraç CAN
Site Dostu
 
Kayıt: 26 Arl 2016 19:07
Meslek: Harita/Ölçme
Yaş: 39
İleti: 803
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Amasya & Adana

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Cevap: ListBox'taki veriyi filtrelemeye ihtiyacım var

İleti#7)  mustafauzun » 21 Kas 2020 10:04

Miraç CAN yazdı:ColumnHeads özelliği sadece RowSource özelliği ile kullanılınca başlıklar gelir, AddItem özelliği ile birlikte RowSource kullanılamadığından maalesef bu mümkün olamaz.
Bunu yerine ListView kullanırsanız olur ama.

Ekle/Çıkar işlemlerinizi yaptığınız kodların son satırına CommandButton1_Click yazın, düğme tetiklenir ve süzme işlemi yenilenir.


Miraç hocam bir ara siteye erişilemiyordu uzun bir aradan sonra tekrar geldim. Bilgiler için teşekkür ederim. Yeni bir program yazıyorum bundan daha kapsamlı. Yalnız bu sefer filtreleme haricinde bul ve değiştir komutlarına ihtiyacım var. Sitede bul ve değiştir ile alakalı kaynak buldum fakat entegre etmeyi başaramadım.
Kullanıcı avatarı
mustafauzun
Yeni Başlamış
 
Kayıt: 05 Ekm 2020 12:22
Meslek: Endüstri Mühendisi 4. Sınıf Öğrencisi
Yaş: 22
İleti: 12
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Istanbul


Forum ListBox

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe