Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform Suchfunktion

Forumthread: Userform Suchfunktion

Userform Suchfunktion
26.09.2022 22:39:09
Sonny
Hallo,
ich habe eine Userform erstellt.
https://www.herber.de/bbs/user/155390.xlsm
In dieser werden die zuvor gespeicherten Namen in einer Listbox aufgelistet.
Daten können eingetragen werden und mit einem Speichernbutton in eine Tabelle gespeichert werden.
ich möchte jedoch gerne:
1. dass in der Listbox die erste Spalte (Name) und die zweite Spalte (Telefon) aufgeführt wird.
2. dass mit der zusätzlichen Textbox7, die Listbox durch sucht werden kann.
so wie zb. in diesem Beitrag:
https://www.youtube.com/watch?v=GkzXUKUxwUs&t=663s
Habe es selbst schon versucht, aber es wird immer die Listbox überschrieben und dann sieht es so aus als würde die Listbox einfrieren...
ich hoffe Ihr könnt mir helfen.
Liebe Grüße
Sonny
Anzeige

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

Betreff
Datum
Anwender
Anzeige
update
27.09.2022 09:19:30
ralf_b
die suche geht über alle Tabelleneinträge.
AW: update
27.09.2022 16:44:03
Sonny
danke für deine Hilfe ralf_b.
Leider bekomme eich beim Eintragen in dem Feld "Suchen", eine Fehlermeldung.
Laufzeitfehler '1004':
Die TextJoin-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.

Private Sub TextBox7_Change()
Dim str$, i&, cnt&
Dim lstrow As ListRow
Dim lstobj As ListObject
Dim arr
Set lstobj = Worksheets("Tabelle1").ListObjects(1)
ListBox1.Clear
Call cleartxtbx
If TextBox7 = vbNullString Then
ListBox1.List = lstobj.ListColumns(1).DataBodyRange.Value2
Exit Sub
Else
For i = 1 To lstobj.ListRows.Count
str = WorksheetFunction.TextJoin("|", False, lstobj.ListRows(i).Range)                 0 Then
ListBox1.AddItem lstobj.ListRows(i).Range.Cells(1)
End If
Next
End If
If ListBox1.ListCount > 0 Then filltxtbx (1)
End Sub

Anzeige
AW: update
27.09.2022 20:07:02
ralf_b
ja sorry, deine Excelversion hat die textkette-Funktion nicht.
ersetze die Sub. Ich habe noch die Telefonnummer mit in die Listbox geschrieben.

Private Sub TextBox7_Change()
Dim str$, i&, cnt&
Dim lstobj As ListObject
Set lstobj = Worksheets("Tabelle1").ListObjects(1)
ListBox1.Clear
Call cleartxtbx
If TextBox7 = vbNullString Then
ListBox1.List = lstobj.ListColumns(1).DataBodyRange.Value2
If ListBox1.ListCount > 0 Then Call filltxtbx(1)
Exit Sub
Else
For i = 1 To lstobj.ListRows.Count
str = vbNullString
For cnt = 1 To lstobj.ListColumns.Count
str = str & "|" & lstobj.ListRows(i).Range.Cells(cnt).Value
Next
If InStr(1, str, TextBox7.Text, vbTextCompare) > 0 Then
With lstobj.ListRows(i).Range
ListBox1.AddItem .Cells(1).Value & " " & .Cells(2).Value
If ListBox1.ListCount = 1 Then Call filltxtbx(i)
End With
End If
Next
End If
End Sub

Anzeige
AW: update
28.09.2022 16:58:21
Sonny
Vielen Dank nochmals.
Das Durchsuchen klappt jetzt wunderbar.
leider funktionieren 2 dinge nach dem Filtern nicht mehr.
1. Wenn in der ListBox mehrere Einträge sind, können diese nicht angeklickt werden
2. Wenn nur ein Eintrag aufgelistet ist, können die dazugehörigen Werte geändert, aber nicht gespeichert werden....
ich hoffe du/ihr habt noch die Lust/Energie ;-)
https://www.herber.de/bbs/user/155436.xlsm
Anzeige
AW: update
30.09.2022 21:35:55
Sonny
hammer. jetzt passt alles.
vielen herzlichen dank!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige