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

Such-Tool, wie verbessern, "live-suche" moeglich?

Such-Tool, wie verbessern, "live-suche" moeglich?
05.02.2014 15:16:31
schluk5
Hallo,
Ich habe mir ein kleines Tool gebastelt, mit dem ich eine Materialliste (Artikelnummer, Beschreibung) anhand der Beschreibung durchsuche, um aus den Treffern meinen gewuenschten Artikel per Doppelklick auswaehlen kann.
www.herber.de/bbs/user/89118.zip
Es funktiomiert auch soweit ganz gut. Allerdings ist die Materialliste deutlich laenger als im Beispiel, etwa 3000 Zeilen. Bei der Laenge ist die Performance schon gar nicht mehr so gut. Sieht vielleicht jemand auf den ersten Blick, was in meinem Code ein Peformance-Killer ist und hat einen Verbesserungsvorschlag?
Das zweite ist, das ich es super faende, wenn mir schon Ergebnisse ab Eintrag der ersten Buchstaben ins Suchfeld angezeigt werden, also in etwa wie bei der google suche... Hierzu wurde mir schon mal folgendes Tool ans Herz gelegt.
https://www.herber.de/bbs/user/89119.zip
Allerdings kann man hier nur nach den Anfaengen der Eintraege suchen und nicht nach Textteilen innerhalb der Eintraege. Ausserdem hat mich der Code aufs erste erschlagen und ich konnte das fuer mich wesentliche nicht identifizieren. Kann mir jemand sagen, welcher Teil dieses codes jene "live-suche" ermoeglicht?
Viele Gruesse, schluk5

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Such-Tool, wie verbessern, "live-suche" moeglich?
05.02.2014 15:55:22
Rudi
Hallo,
für die Live-Suche brauchst du eine Textbox. Mit Zellen geht das nicht.
Private Sub TextBox1_Change()
Dim arrTmp, arrDaten(), objDaten As Object, i As Long, arrKeys, arrItems
ReDim arrDaten(0, 0)
ListBox1.ListFillRange = ""
ListBox1.Clear
arrTmp = Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)
If Trim(Len(TextBox1)) Then
Set objDaten = CreateObject("Scripting.dictionary")
For i = 1 To UBound(arrTmp)
If LCase(arrTmp(i, 2)) Like LCase(TextBox1) & "*" Then
objDaten(arrTmp(i, 1)) = arrTmp(i, 2)
End If
Next
If objDaten.Count Then
arrKeys = objDaten.keys
arrItems = objDaten.items
ReDim arrDaten(1 To objDaten.Count, 1 To 2)
For i = 1 To objDaten.Count
arrDaten(i, 1) = arrKeys(i - 1)
arrDaten(i, 2) = arrItems(i - 1)
Next
End If
Else
ListBox1.List = arrTmp
End If
If UBound(arrDaten) > 0 Then ListBox1.List = arrDaten
End Sub

Gruß
Rudi

Anzeige
AW: Such-Tool, wie verbessern, "live-suche" moeglich?
05.02.2014 16:13:40
schluk5
Hallo Rudi,
Danke fuer die Antwort.
Verstehe ich das richtig, das ich die gesamte Materialliste erst in einer Textbox speichern muss, um dann darauf die "Live-suche" anwenden zu koennen?!

AW: Such-Tool, wie verbessern, "live-suche" moeglich?
05.02.2014 16:46:05
Rudi
Hallo,
Verstehe ich das richtig,
nein.
Die Textbox brauchst du nur zur Eingabe des Suchbegriffs.
Die Materialliste weiterin in A:B.
Gruß
Rudi

AW: Such-Tool, wie verbessern, "live-suche" moeglich?
07.02.2014 15:35:09
schluk5
Hallo Rudi,
Ich bin erst jetzt wieder dazu gekommen. Wow, das funktioniert ja super! Danke dafuer!
Eine Frage hab ich noch. Die Daten, die durchsucht werden liegen eigentlich in einem anderen sheet. Ich habe also

arrTmp = Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)

durch

arrTmp = Worksheets("Daten").Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)
ersetzt. Leider kommt dann der Fehler '1004'.
Was habe ich verkehrt gemacht?
VG!!

Anzeige
AW: Such-Tool, wie verbessern, "live-suche" moeglich?
11.02.2014 11:46:57
Rudi
Hallo,
With Worksheets("Daten")
arrTmp = .Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)
End With
oder
arrTmp = Worksheets("Daten").Range(Worksheets("Daten").Cells(3, 1), Worksheets("Daten").Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)
Gruß
Rudi

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige