Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListBox / gefiltert

ListBox / gefiltert
07.10.2021 17:20:43
Juergen
Habe eine Listbox in der Userform, eine Tabelle mit den Spalten A-M und möchte hier die gefilterten werte anzeigen, ich steh hier irgendwie auf dem schlauch...
Gesucht wird in Spalte B, der Filter funktioniert auch schon aber die anzeige in der List box nicht.
Später möchte ich in der Listebox eine Zeile markieren und den entsprechenden Eintrag mutieren können.

  • Datum Personalnummer Name FZ Was effektive Schadenhöhe Abzug MFH Abzug Transport Abzug Diverses Absenztage Abzug Absenzen Saldo Hilfszeile
    02.01.2021 184762 Atene Luigi 70.032 Stossecke Li. + Deckel ersetzt CHF 250.00 CHF 250.00 CHF - CHF - 0 CHF - CHF 250.00 2
    02.01.2021 184820 Bursac Dragana 70.032 Stossecke Li. + Deckel ersetzt CHF 250.00 CHF 250.00 CHF - CHF - 0 CHF - CHF 250.00 3
    04.01.2021 184795 Algarbi Snan 70.145 Rolle CHF 1'200.00 CHF 1'200.00 CHF - CHF - 0 CHF - CHF 1'200.00 4

  • Mein Code:
    
    Private Sub ListUpdate()
    Me.ListBox1.Clear
    Dim ThisBook As Workbook
    Set ThisBook = ActiveWorkbook
    Dim lZeil, fille, Filt As String
    Dim lZeile, LLibox As Long
    lZeil = ThisBook.Worksheets("Datensätze").Cells(Rows.Count, 1).End(xlUp).Row + 1
    If Not ActiveSheet.AutoFilterMode Then
    ThisBook.Worksheets("Datensätze").Range("A1:M" & lZeil).AutoFilter
    '  ActiveWorkbook.Worksheets("Datensätze").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Datensätze").AutoFilter.Sort.SortFields.Add2 Key:=Range("A1:A" & lZeil), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Datensätze").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    End If
    Filt = ThisBook.Worksheets("Einstellungen").Range("B1").Value
    ' 1ter Filter
    ThisBook.Worksheets("Datensätze").Range("A1:M" & lZeil).AutoFilter Field:=2, Criteria1:=Filt, Operator:=xlFilterValues
    ThisBook.Worksheets("Datensätze").Activate
    With Me.ListBox1
    .ColumnCount = 13
    .ColumnWidths = "50 pt;0 pt;0 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;"
    '.ColumnHeads = True
    End With
    With ThisBook.Worksheets("Datensätze")
    fille = ThisBook.Worksheets("Datensätze").Cells(Rows.Count, 1).End(xlUp).Row
    For lZeile = 1 To fille
    If .Cells(lZeile, 1) = "" Then Exit For
    If .Rows(lZeile).Hidden = False Then
    ListBox1.AddItem
    Label15.Caption = ThisBook.Worksheets("Einstellungen").Range("B1").Value & " " & ThisBook.Worksheets("Einstellungen").Range("D1").Value
    ListBox1.List(LLibox, 0) = .Cells(lZeile, 1).Value
    ListBox1.List(LLibox, 1) = .Cells(lZeile, 2).Value
    ListBox1.List(LLibox, 2) = .Cells(lZeile, 3).Value
    ListBox1.List(LLibox, 3) = .Cells(lZeile, 4).Value
    ListBox1.List(LLibox, 4) = .Cells(lZeile, 5).Value
    ListBox1.List(LLibox, 5) = .Cells(lZeile, 6).Value
    ListBox1.List(LLibox, 6) = .Cells(lZeile, 7).Value
    ListBox1.List(LLibox, 7) = .Cells(lZeile, 8).Value
    ListBox1.List(LLibox, 8) = .Cells(lZeile, 9).Value
    ListBox1.List(LLibox, 9) = .Cells(lZeile, 10).Value
    ListBox1.List(LLibox, 10) = .Cells(lZeile, 11).Value
    ListBox1.List(LLibox, 11) = .Cells(lZeile, 12).Value
    ListBox1.List(LLibox, 12) = .Cells(lZeile, 13).Value
    LLibox = LLibox + 1
    TextBox9.Value = .Cells(lZeile, 3).Value
    ThisBook.Worksheets("einstellungen").Range("B1").Value = TextBox1.Value
    Label11.Caption = "Auszahlung 1 Quartal  " & ThisBook.Worksheets("Einstellungen").Range("D3").Value & " CHF"
    Label12.Caption = "Auszahlung 2 Quartal  " & ThisBook.Worksheets("Einstellungen").Range("D4").Value & " CHF"
    Label13.Caption = "Auszahlung 3 Quartal  " & ThisBook.Worksheets("Einstellungen").Range("D5").Value & " CHF"
    Label14.Caption = "Auszahlung 4 Quartal  " & ThisBook.Worksheets("Einstellungen").Range("D6").Value & " CHF"
    End If
    Next
    End With
    ActiveSheet.ShowAllData
    End Sub
    
    hier noch mein Sheet: https://www.herber.de/bbs/user/148496.xlsm

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: ListBox / gefiltert
    07.10.2021 18:11:31
    Nepumuk
    Hallo Juergen,
    1. Das gehrt in die Prozedur "UserForm_Activate":
    
    With ListBox1
    .ColumnCount = 11
    .ColumnWidths = "50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt;50 pt"
    End With
    
    2. Die geänderte Prozedur:
    
    Private Sub ListUpdate()
    Dim lZeile As Long, LLibox As Long
    Dim avntValues() As Variant
    With ThisWorkbook.Worksheets("Datensätze")
    If Not .AutoFilterMode Then .Rows(1).AutoFilter
    With .AutoFilter.Sort
    .SortFields.Clear
    .SortFields.Add2 Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    .Rows(1).AutoFilter Field:=2, Criteria1:=ThisWorkbook.Worksheets("Einstellungen").Range("B1").Value
    For lZeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
    If Not .Rows(lZeile).Hidden Then
    ReDim Preserve avntValues(10, LLibox)
    avntValues(0, LLibox) = .Cells(lZeile, 1).Value
    avntValues(1, LLibox) = .Cells(lZeile, 4).Value
    avntValues(2, LLibox) = .Cells(lZeile, 5).Value
    avntValues(3, LLibox) = .Cells(lZeile, 6).Value
    avntValues(4, LLibox) = .Cells(lZeile, 7).Value
    avntValues(5, LLibox) = .Cells(lZeile, 8).Value
    avntValues(6, LLibox) = .Cells(lZeile, 9).Value
    avntValues(7, LLibox) = .Cells(lZeile, 10).Value
    avntValues(8, LLibox) = .Cells(lZeile, 11).Value
    avntValues(9, LLibox) = .Cells(lZeile, 12).Value
    avntValues(10, LLibox) = .Cells(lZeile, 13).Value
    LLibox = LLibox + 1
    TextBox9.Value = .Cells(lZeile, 3).Value
    End If
    Next
    ListBox1.Column = avntValues
    ThisWorkbook.Worksheets("Einstellungen").Range("B1").Value = TextBox1.Value
    Label11.Caption = "Auszahlung 1 Quartal  " & ThisWorkbook.Worksheets("Einstellungen").Range("D3").Value & " CHF"
    Label12.Caption = "Auszahlung 2 Quartal  " & ThisWorkbook.Worksheets("Einstellungen").Range("D4").Value & " CHF"
    Label13.Caption = "Auszahlung 3 Quartal  " & ThisWorkbook.Worksheets("Einstellungen").Range("D5").Value & " CHF"
    Label14.Caption = "Auszahlung 4 Quartal  " & ThisWorkbook.Worksheets("Einstellungen").Range("D6").Value & " CHF"
    Label15.Caption = ThisWorkbook.Worksheets("Einstellungen").Range("B1").Value & " " & _
    ThisWorkbook.Worksheets("Einstellungen").Range("D1").Value
    .ShowAllData
    End With
    End Sub
    
    Gruß
    Nepumuk
    Anzeige
    AW: ListBox / gefiltert
    07.10.2021 20:15:40
    Juergen
    Danke Nepomuk, läuft wie gewünscht, perfekt.
    Dazu wurde mein Chaos Code noch super aufgeräumt, Danke dir.
    Jetzt muss ich mir nur noch die Update-Funktion bauen, dann passt das.
    Gruss
    Jürgen
    AW: ListBox / gefiltert
    07.10.2021 18:16:05
    onur
    "aber die anzeige in der List box nicht" ? Die Listbox wird doch korrekt befüllt.
    AW: ListBox / gefiltert
    07.10.2021 20:17:55
    Juergen
    Wurde nicht angezeigt, da ich die ColumnWidths in die falsche Prozedur geschrieben hatte.
    mit dem Code von Nepomuk läuft es aber super.
    warum dann offen? o.w.T.
    08.10.2021 08:18:01
    Werner

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige