Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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

Userform Listbox suchen

Userform Listbox suchen
14.11.2016 08:42:21
Peter
Hallo Ihr Excelspezialisten,
wünsche einen guten Morgen.
Ich habe ein kleines Problem.
Ich habe eine Listbox mit 29 Spalten und wird with ListBox1
.RowSource = "'" & Sheets("Tabelle1").Name & "'!" & Sheets("Tabelle1") _
.Range("A1:AC" & Sheets("Tabelle1").Range("L65536").End(xlUp).Row).Address
gefüllt.
Nun möchte ich über TextBox1 einen Wert eingeben und in ListBox1 sollen nur die Zeilen erscheinen in welchen der Wert enthalten ist. Teilwert-Eingabe wäre wünschenswert.
Besten Dank für Eure Hilfe
Gruss Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Listbox suchen Nachtrag
14.11.2016 08:55:01
Peter
Hallo Excelspezialisten,
ich habe da was gefunden was ich in anderer ListBox ausführe:
Dim rngFind As Range, rngFirst As Range
UserForm3.lstFind.Clear
Set rngFind = Worksheets("Tabelle1").Cells.Find( _
what:=txtSuchen.Text, _
lookat:=xlPart, _
LookIn:=xlValues)
If rngFind Is Nothing Then
Beep
MsgBox "Kein Suchbegriff gefunden!"
Exit Sub
End If
Set rngFirst = rngFind
Do
UserForm3.lstFind.AddItem rngFind
Set rngFind = Worksheets("Tabelle1").Cells.FindNext(rngFind)
Loop While Not rngFind Is Nothing And _
rngFind.Address rngFirst.Address
Aber das Problem ist, das nur die Begriffe die gefunden werden in erster Spalte angezeigt werden, nicht jedoch die ganzen Zeilen.
Kennt Ihr eine Möglichkeit das zu ändern, damit die ganzen Zeilen angezeigt werden.
Besten Dank
Gruss Peter
Anzeige
AW: Userform Listbox suchen Nachtrag
14.11.2016 09:14:53
Beverly
Hi Peter,
mittels AddItem kannst du eine ListBox m.W. nur bis maximal 10 Spalten füllen. Da es bei dir jedoch mehr sind, könntest du es so lösen, dass du die gefundenen Daten aus der Originaltabelle in eine Hilfstabelle kopierst und diesen Zellbreich dann der ListBox als Datenquelle zuweist.


AW: Userform Listbox suchen Nachtrag
14.11.2016 10:34:02
Peter
Hallo Karin,
besten Dank für Deinen Hinweis.
Ich habe das festgestellt, dass bei 10 Spalten Ende ist.
Hast Du zufällig ein Makro, welches dies entsprechend ausführt?
Wäre schön, wenn Du mir da weiter helfen könntet.
Gruss Peter
Anzeige
AW: Userform Listbox suchen Nachtrag
14.11.2016 11:09:04
Beverly
Hi Peter,
na du hast doch den Code für AddItem - anstelle dieser Zeile kopierst du die gefundene Zeile fortlaufend in das Hilfstabellenblatt (daran denken, vorher die Zellen leeren).


AW: Userform Listbox suchen Nachtrag
14.11.2016 11:38:36
Peter
Hallo Karin,
habe die Sache jetzt so hinbekommen, wie ich dies benötige.
Nochmals besten Dank für Deine Hilfe.
Wünsche Dir noch einen schönen Tag.
Gruss Peter
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
Anzeige
AW: Userform Listbox suchen Nachtrag
14.11.2016 14:20:15
Beverly
Hi Peter,
das Vorgehen genau wie im anderen Fall, also gefilterte Zellen in Hilfstabelle kopieren. Aber wenn die Tabelle gefiltert ist, kannst du mit SpecialCells(xlCelltypeVisible) arbeiten und so den gesamten gefilterten Bereich auf einmal kopieren, d.h. du benötigst keine Schleife.


Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige