AW: Userform Listbox suchen Nachtrag
14.11.2016 12:21:55
Peter
Hallo Karin,
das Problem mit Suchen habe ich ja erledigt.
Jetzt habe ich aber ein ähnliches Problem.
Ich filter die Tabelle mit folgendem Makro:
Sub Makro_Filtern_01_Grundschule()
Worksheets("Tabelle1").Range("A1").Select
SpalteL = Range("M65536").End(xlUp).Row 'SpalteL ist der Massstab für das berechnen der letzten_ beschriebenene Zelle in Spalte K = PLZ da immer ausgefüllt
ActiveSheet.PageSetup.PrintArea = Range("A1:AB" & SpalteL).Address
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AB$1000").AutoFilter Field:=27, Criteria1:= _
"01 Grundschule"
Worksheets("Tabelle1").Range("A1").Select
End Sub
Jetzt möchte ich diese 29 Spalten in der ListBox anzeigen.
Für das Suchen habe ich dieses Makro:
Private Sub CommandButton1_Click()
'Suchen
Dim rZelle As Range 'Fund für Suchbegriff (TextBox1)
Dim firstAddress As String 'Adresse erster Fund
Dim lZeile As Long, lSpalte 'Zähler
UserForm_Activate
lZeile = 2
'Suche des Begriffes
If TextBox1.Text "" Then 'Wenn Suchbegriff nicht leer
With wks.Range("A:AB") 'Suchbereich
Set rZelle = .Find(What:=TextBox1.Text, LookAt:=xlPart)
If Not rZelle Is Nothing And TextBox1.Text "" Then
firstAddress = rZelle.Address
Do
If WorksheetFunction.CountIf(wksFilter.Range("A:A"), rZelle.Row) = 0 And _
rZelle.Row > 1 Then 'nur wenn Zeile noch nicht vorhanden
wks.Range(Cells(rZelle.Row, 1), Cells(rZelle.Row, 31)).Copy _
Destination:=wksFilter.Cells(lZeile, 2) 'A-Z kopieren 'vorher 2
wksFilter.Cells(lZeile, 1) = rZelle.Row
lZeile = lZeile + 1
End If
Set rZelle = .FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address firstAddress
Else 'Wenn nichts gefunden
wksFilter.Cells(lZeile, 1) = "- kein Treffer -"
End If
End With
ListBox1.RowSource = "Tabelle2!A1:AC" & wksFilter.Cells(Rows.Count, 1).End(xlUp).Row
End If
End Sub
Kannst Du mir bitte das so umschreiben, damit ich den gefilterten Bereich in der Listbox anzeigen kann?
Besten Dank im Voraus
Gruss Peter