• DİKKAT

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

listbox'a sayfa üzerinden veri filtreleme

Katılım
23 Nisan 2007
Mesajlar
32
Excel Vers. ve Dili
Office 2013 Turkçe
arkadaşlar merhaba,

ekli dosyada tablo biçimindeki verileri;
userform üzerinde bulunan combo2 den isim seçince, listbox üzerinde filtreleme olmasını ve list box üzerinde o satırı tıkladığımda o satıra ait bilgilerin hücre sırası ile textboxlara gelsin istiyorum.
(proje adı bölümünün combo olma sebebi, yeni kayıt yapılacağında proje adının başka sayfada bulunan listeden seçilmek istenmesidir)

bayağı bir uğraştım fakat istediğimden farklı sonuçlar ortaya çıktı.

yardımcı olabilirseniz sevinirim.

şimdiden teşekkürler.
 

Ekli dosyalar

. . .

Dosyanız ektedir.

Userformdaki kodları şunlar ile değiştirin.

Filtreleme yaptıktan sonra listbox başlıkları silinir. Başlıkları label ile yapabilirsiniz.


Kod:
Dim ArrSatir(1000)
Private Sub ComboBox2_Change()
    Dim SV     As Worksheet
    Dim a      As Long
    Dim i      As Long
    Set SV = Sheets("MAYIS2014")
    ReDim dizial(1 To 16, 1 To 1)
    ListBox1.RowSource = ""
    ListBox1.Clear
    For i = 7 To SV.Cells(Rows.Count, "A").End(3).Row
        If ComboBox2.Text = SV.Cells(i, "B") Then
            a = a + 1
            ReDim Preserve dizial(1 To 16, 1 To a)
            dizial(1, a) = SV.Cells(i, "A")
            dizial(2, a) = SV.Cells(i, "B")
            dizial(3, a) = SV.Cells(i, "C")
            dizial(4, a) = SV.Cells(i, "D")
            dizial(5, a) = SV.Cells(i, "E")
            dizial(6, a) = SV.Cells(i, "F")
            dizial(7, a) = SV.Cells(i, "G")
            dizial(8, a) = SV.Cells(i, "H")
            dizial(9, a) = SV.Cells(i, "I")
            dizial(10, a) = SV.Cells(i, "J")
            dizial(11, a) = SV.Cells(i, "K")
            dizial(12, a) = SV.Cells(i, "L")
            dizial(13, a) = SV.Cells(i, "M")
            dizial(14, a) = SV.Cells(i, "N")
            dizial(15, a) = SV.Cells(i, "O")
            dizial(16, a) = SV.Cells(i, "A").Row
        End If
    Next i
    If a = 0 Then
        MsgBox ComboBox2.Text & " Veri Tablosunda Yok! ", vbCritical
    Else
        ListBox1.Column = dizial
    End If
    
    Erase dizial
    a = Empty
    i = Empty
    Set SV = Nothing
    
End Sub


Private Sub CommandButton1_Click()
    Unload Me
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If ComboBox2.Text = "" Then
        MsgBox "Filtre Yapmadınız ", vbCritical
        Exit Sub
    End If
    sat = ListBox1.Column(15)
    If ListBox1.ListIndex <> -1 Then
        TextBox1.Text = Cells(sat, "A")
        TextBox3.Text = Cells(sat, "C")
        TextBox4.Text = Cells(sat, "D")
        TextBox5.Text = Cells(sat, "G")
        TextBox6.Text = Cells(sat, "H")
        TextBox7.Text = Cells(sat, "L")
        ComboBox1.Value = Cells(sat, "B")
    Else
        MsgBox " Ürün Seçmelisin ", vbCritical
    End If
End Sub

Private Sub TextBox3_Change()
    TextBox3 = Format(TextBox3, "#,##0.00")
End Sub

Private Sub TextBox5_Change()
    TextBox5 = Format(TextBox5, "#,##0.00")
End Sub

Private Sub TextBox7_Change()
    TextBox7 = Format(TextBox7, "#,##0")
End Sub

'Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'TextBox7 = Format(TextBox7, "00"".""00"".""0000")
'End Sub

Private Sub UserForm_Initialize()
    
    ListBox1.ColumnCount = 15
    ListBox1.ColumnWidths = "30;50;50;50;50;50;50;50;50;50;50;50;50;50;50;0"
    ListBox1.RowSource = "MAYIS2014!A7:O" & Range("O65536").End(xlUp).Row
    ComboBox1.ColumnCount = 1
    'ComboBox1.ColumnWidths = "15"
    ComboBox1.RowSource = "MAYIS2014!B7:B1000" & Range("B65536").End(xlUp).Row
    ComboBox2.ColumnCount = 5
    'ComboBox1.ColumnWidths = "15"
    ComboBox2.RowSource = "MAYIS2014!B7:B1000" & Range("B65536").End(xlUp).Row
    
End Sub

. . .
 

Ekli dosyalar

teşekkür ederim, emeğinize sağlık...
 
Geri
Üst