MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 12.03.2018, 16:47   #1
Peerli
Neuer Benutzer
Neuer Benutzer
Standard Excel2010 - TextBox Suche in ListBox dynamisch

Hallo.

Ich habe aus dem Internet eine Möglichkeit gefunden, wie ich Einträge in einer ListBox über eine TextBox filtern kann, die bei Eingabe eines Buchstaben fortlaufend aktualisiert.
Soweit macht es auch seinen Dienst.

Jetzt verzweifle ich gerade daran, das die Einträge, die mehrere Spalten in der ListBox haben, bei der Suchroutine einspaltig werden und auch bleiben.
Mein Ziel ist es aber, die Struktur der ListBox zu erhalten.

Gesucht wird nach dem Nachnamen.

Anbei meine Datei.
Zusätzlich noch ein Screenshot und der Code dazu.

Code:

Private Sub txt_Suche_Change()
    Dim avntValues() As Variant, avntFilterValues() As Variant
    Dim ialngIndex As Long, ialngCount As Long
    Dim shQuelle As Worksheet
    Dim strText As String

    Set shQuelle = Sheets("Teilnehmer")


    'lst_Teilnehmer.Clear

    With shQuelle

        avntValues = .Range(.Cells(1, 2), .Cells(.Cells(.Rows.Count, 2).End(xlUp).row, 2)).Value

        strText = LCase$(Trim$(txt_Suche.Text))

        If strText = vbNullString Then

            lst_Teilnehmer.List = avntValues

        Else

            For ialngIndex = LBound(avntValues) To UBound(avntValues)

                If LCase$(Left$(avntValues(ialngIndex, 1), Len(strText))) = strText Then

                    ialngCount = ialngCount + 1
                    ReDim Preserve avntFilterValues(1 To 2, 1 To ialngCount)

                    avntFilterValues(1, ialngCount) = avntValues(ialngIndex, 1)
                    'avntFilterValues(2, ialngCount) = avntValues(ialngIndex, 1)

                End If
            Next

            If ialngCount > 0 Then
                lst_Teilnehmer.Column = avntFilterValues
            Else
                Call lst_Teilnehmer.AddItem("Kein Treffer")
            End If
        End If
    End With
End Sub
Vielleicht kann jemand mir hierbei helfen.
Ich bedanke mich schon einmal im Voraus für jede Hilfe.

LG
Peer
Angehängte Grafiken
Dateityp: png Liste.png (69,1 KB, 5x aufgerufen)
Angehängte Dateien
Dateityp: xlsm Teilnehmer.xlsm (169,1 KB, 2x aufgerufen)

__________________

Win7 Pro 64bit; MSO 2010/2017
Peerli ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.03.2018, 16:55   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

so umfangreiche Sache tue ich mir nicht an. Vielleicht ein Ansatz:
http://www.hajo-excel.de/vba_userform_auswahlliste.htm

GrußformelHomepage

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.03.2018, 17:08   #3
Peerli
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

das ist aber eine Menge zu verstehen Hajo.
Interessanter Ansatz.

Aber geht es trotzdem einfacher für mein Projekt, oder muss ich jetzt alles neu machen?

LG

__________________

Win7 Pro 64bit; MSO 2010/2017
Peerli ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.03.2018, 21:47   #4
Luschi
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Peerli,

ich glaube mit den Array hast Du dich ein bischen verrannt. So schön schnell sie auch sind, aber sie sind eben nicht flexibel genug und jede (Schönheits)Änderung bring viel Arbeit im Vba-Segment mit sich. Wenn man sich das nicht antun will, dann bleibt für die Abfragen eigentlich nur ADODB oder DAO mit Recordset und SQL-Syntax übrig. Ich habe es mit ADODB gemacht.
Habe auch 3 Filtermöglichkeiten eingebaut (Name / Vorname / Pers-Nr) und bei jeder Eingabe von Buchstabe/Ziffer in die Text-Suchbox ändert sofort die Anzeige der Listbox.
Mehr habe ich erstmal nicht getan, aber der wenige Vba-Code sollte Dich überzeugen, umzuschwenken.

Gruß von Luschi
aus klein-Paris
Angehängte Dateien
Dateityp: xlsm Teilnehmer(1).xlsm (166,3 KB, 7x aufgerufen)
Luschi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.03.2018, 15:25   #5
Peerli
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Luschi.
Ich hatte am Anfang auch die Idee mit SQL, könnte aber leider keinen Erfolg verbuchen.
Deshalb habe ich das Netz nach Alternativen durchsucht.

Vielen Dank für deine Hilfe.
Wenn ich daheim bin, werde ich da mal ran machen, wie deine Lösung aussieht.
LG
Peer

__________________

Win7 Pro 64bit; MSO 2010/2017
Peerli ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.03.2018, 15:26   #6
Peerli
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Hajo.
Ich bin mal alle Versionen deines Links durchgegangen.
Danke für deinen Tipp.

Bin begeistert, was alles geht.

LG
Peer

__________________

Win7 Pro 64bit; MSO 2010/2017
Peerli ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.03.2018, 20:21   #7
Peerli
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Guten Abend Luschi.
Ich habe ein wenig mit deiner Lösung gespielt.
Ein Super-Ansatz!!!

Ich tue mich aber schwer, dies zu verstehen. Du bist eben ein Profi.

Wenn ich den Debugger drüber laufen lasse, bekomme ich bei deinem mod_Luschi einen Fehler.

Ich habe noch das Leeren der Liste auskommentiert, die bei den Options-Button waren.

LG
Peer

__________________

Win7 Pro 64bit; MSO 2010/2017
Peerli ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.03.2018, 07:35   #8
Luschi
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Peerli,,

dann mußt Du die fehlerhafte Zeile schon erwähnen und aufzeigen.
Bei mir läuft es ohne Fehler durch.
Auf sllr Fälle ist der Einsatz von SQL in Verbindujng mit AdoDB unschlagbar gegenüber jedem andersartigem Rumgewurschtle.

Gruß von Luschi
aus klein-Paris

PS: Du kannst mir auch eine PN schicken, dann können wir ungestörter über das Problem uns austauschen.
Luschi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.