Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1536to1540
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

Suche und Zeile in Listbox

Suche und Zeile in Listbox
27.01.2017 16:51:44
Alex
Hallo Forum,
ich habe eine ziemlich allgemeine Frage, leider noch keine zufriedenstellende Lösung gefunden.
Ich möchte einen Text in ein Textfeld eingeben. Anschließend soll in der Tabelle in einer bestimmten Spalte nach diesem Text gesucht werden. Bei einem Fund soll dann die gesamte Zeile in einer Listbox angezeigt werden und die nächste eventuelle Übereinstimmung gesucht werden, sodass am Ende alle Zeilen, die das Suchwort der Textbox in Spalte XY haben in der Listbox stehen.
Zusätzlich wäre es schön, wenn auch Wortteile berücksichtigt werden. Wenn der Nutzer also nach dem Wort "Park" sucht, soll nicht nur "Park", sondern auch "Parkbank", "Stadtpark", usw. ausgegeben werden.
Könnt ihr mir helfen.
Vielen Dank und beste Grüße
Alex

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche und Zeile in Listbox
27.01.2017 16:57:49
Werner
Hallo Alex,
da stimme ich dir zu - ziemlich allgemein. Bastel doch mal eine Beispieltabelle mit ein paar Daten und stelle die hier online.
Dann noch die Frage: Wo soll das Textfeld und die Listbox denn sein, direkt in einem Tabellenblatt oder auf einer UserForm?
Gruß Werner
AW: Suche und Zeile in Listbox
27.01.2017 17:12:54
Alex
Hallo Werner,
kein Problem. Ich habe eine Datei hochgeladen. Der zu suchende Text soll in TXB_Suche der Userform USF_Search eingegeben werden. Anschließend soll in Spalte C der Tabelle 1 gesucht werden und alle Ergebnisse inkl. der anderen Spalten in der Listbox LIB_Ergebnis ausgegeben werden.
https://www.herber.de/bbs/user/110948.xlsm
Vielen Dank für deine Hilfe.
Alex
Anzeige
AW: Suche und Zeile in Listbox
27.01.2017 17:22:49
Werner
Hallo Alex,
kleines Problem: Kann hier im Moment keine .xlsm runterladen - sorry hätte ich auch gleich schreiben können.
Stell die datei doch nochmals als .xlsx ein.
Gruß Werner
AW: Suche und Zeile in Listbox
27.01.2017 18:04:26
Crazy
Hallo
erstelle dir in deiner Userform eine neue Schaltfläche
CommandButton1
dann dieser Code dahinter
Private Sub CommandButton1_Click()
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strErste As String
With LIB_Ergebnis
.ColumnCount = 6
.ColumnWidths = "75;75;75;75;75;75"
.Clear
End With
With Sheets("Tabelle1")
Set rngBereich = .Columns(3)
Set c = rngBereich.Find(TXB_Suche, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strErste = c.Address
Do
LIB_Ergebnis.AddItem .Cells(c.Row, 1)
lngAnzahl = LIB_Ergebnis.ListCount
LIB_Ergebnis.List(lngAnzahl - 1, 1) = .Cells(c.Row, 2)
LIB_Ergebnis.List(lngAnzahl - 1, 2) = .Cells(c.Row, 3)
LIB_Ergebnis.List(lngAnzahl - 1, 3) = .Cells(c.Row, 4)
LIB_Ergebnis.List(lngAnzahl - 1, 4) = .Cells(c.Row, 5)
LIB_Ergebnis.List(lngAnzahl - 1, 5) = .Cells(c.Row, 6)
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address  strErste
End If
End With
End Sub
MfG Tom
Anzeige
AW: Suche und Zeile in Listbox
27.01.2017 18:16:26
Alex
Super Danke.
Das ist genau das was ich erreichen wollte.
Ist es möglich den Code noch zu erweitern? Es wäre super wenn man zuvor in einem DropDown auswählen könnte, ob man in Spalte 1, 2, 3, oder 4 sucht.
AW: Suche und Zeile in Listbox
27.01.2017 18:25:41
Crazy
Hallo
dann erstelle dir eine Combobox1 auf deiner Userform
dazu dann dieser Code hinter die Userform
Private Sub CommandButton1_Click()
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim strErste As String
Dim intSpalte As Integer
If ComboBox1.ListIndex = -1 Then
MsgBox "zuerst Suchspalte wählen"
Exit Sub
End If
intSpalte = ComboBox1.ListIndex + 1
With LIB_Ergebnis
.ColumnCount = 6
.ColumnWidths = "75;75;75;75;75;75"
.Clear
End With
With Sheets("Tabelle1")
Set rngBereich = .Columns(intSpalte)
Set c = rngBereich.Find(TXB_Suche, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strErste = c.Address
Do
LIB_Ergebnis.AddItem .Cells(c.Row, 1)
lngAnzahl = LIB_Ergebnis.ListCount
LIB_Ergebnis.List(lngAnzahl - 1, 1) = .Cells(c.Row, 2)
LIB_Ergebnis.List(lngAnzahl - 1, 2) = .Cells(c.Row, 3)
LIB_Ergebnis.List(lngAnzahl - 1, 3) = .Cells(c.Row, 4)
LIB_Ergebnis.List(lngAnzahl - 1, 4) = .Cells(c.Row, 5)
LIB_Ergebnis.List(lngAnzahl - 1, 5) = .Cells(c.Row, 6)
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address  strErste
End If
End With
End Sub
Private Sub UserForm_Initialize()
Dim vSpalten As Variant
vSpalten = Array("Spalte A", "Spalte B", "Spalte C", "Spalte D")
ComboBox1.List = vSpalten
End Sub
MfG Tom
Anzeige
AW: Suche und Zeile in Listbox
27.01.2017 18:28:34
Alex
Echt klasse. Du bist der Beste.
Danke :)
AW: Suche und Zeile in Listbox
27.01.2017 18:31:44
Alex
Sorry Tom, ich habe noch etwas vergessen.
Die Daten stehen in der Tabelle erst ab Zeile 5. Derzeit wird in der gesamten Spalte gesucht, sodass auch die Überschriften mit angezeigt werden. Kann man das noch ändern?
AW: Suche und Zeile in Listbox
27.01.2017 18:36:52
Crazy
Hallo
das könnte dann so aussehen
in der Hoffnung, dass du keine "intelligente" Tabelle hast
Private Sub CommandButton1_Click()
Dim c As Range
Dim rngBereich As Range
Dim lngAnzahl As Long
Dim lngLetzte As Long
Dim strErste As String
Dim intSpalte As Integer
If ComboBox1.ListIndex = -1 Then
MsgBox "zuerst Suchspalte wählen"
Exit Sub
End If
intSpalte = ComboBox1.ListIndex + 1
With LIB_Ergebnis
.ColumnCount = 6
.ColumnWidths = "75;75;75;75;75;75"
.Clear
End With
With Sheets("Tabelle1")
lngLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngBereich = .Range(.Cells(6, intSpalte), .Cells(lngLetzte, intSpalte))
Set c = rngBereich.Find(TXB_Suche, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strErste = c.Address
Do
LIB_Ergebnis.AddItem .Cells(c.Row, 1)
lngAnzahl = LIB_Ergebnis.ListCount
LIB_Ergebnis.List(lngAnzahl - 1, 1) = .Cells(c.Row, 2)
LIB_Ergebnis.List(lngAnzahl - 1, 2) = .Cells(c.Row, 3)
LIB_Ergebnis.List(lngAnzahl - 1, 3) = .Cells(c.Row, 4)
LIB_Ergebnis.List(lngAnzahl - 1, 4) = .Cells(c.Row, 5)
LIB_Ergebnis.List(lngAnzahl - 1, 5) = .Cells(c.Row, 6)
Set c = rngBereich.FindNext(c)
Loop While Not c Is Nothing And c.Address  strErste
End If
End With
End Sub
MfG Tom
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige