AW: Listbox aus Tabellenblatt füllen
15.10.2021 22:14:35
Werner
Hallo,
und warum willst du das Tabellenblatt jedesmal neu erstellen und dann wieder löschen?
Einmal das Tabellenblatt anlegen und anschließend ausblenden.
Hier jetzt mal der Code angepasst auf deine Beispielmappe. Ein Tabellenblatt anlegen und in "Hilfstabelle" umbennenen. Anschließend kannst du das Blatt ausblenden.
Habs jetzt doch ohne Filter per Schleife gemacht. Ich nehme mal nicht an, dass es sich dabei um tausende von Datensätzen handelt.
Private Sub TextBox1_AfterUpdate()
Dim loLetzte As Long, i As Long, raListe As Range
With Worksheets("Daten")
If Me.TextBox1 "" Then
If WorksheetFunction.CountIf(.Columns("C"), Me.TextBox1) > 0 Then
loLetzte = .Columns("C").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
searchdirection:=xlPrevious).Row
For i = 2 To loLetzte
If .Cells(i, "C") = Me.TextBox1 Then
If raListe Is Nothing Then
Set raListe = .Cells(i, "A").Resize(, 12)
Else
Set raListe = Union(raListe, .Cells(i, "A").Resize(, 12))
End If
End If
Next i
If Not raListe Is Nothing Then
Worksheets("Hilfstabelle").Range("A1").CurrentRegion.Clear
raListe.Copy Worksheets("Hilfstabelle").Range("A1")
Me.ListBox1.ColumnCount = 12
Me.ListBox1.ColumnWidths = "2 cm;2 cm;2 cm;2 cm;2 cm;2 cm;2 cm;2 cm;2 cm;2 cm;2 Pt;2 cm"
Me.ListBox1.Clear
Me.ListBox1.List = Worksheets("Hilfstabelle").Range("A1").CurrentRegion.Value
End If
Else
MsgBox "Suchbegriff " & Me.TextBox1 & " ist in Spalte C nicht vorhanden."
End If
End If
End With
Set raListe = Nothing
End Sub
Gruß Werner