Datenbanksuche über Userform (Listbox)
#1
Hallo zusammen,
ich brauche noch mal eure Hilfe.
Ich würde gerne in einer Datenbank nach einem bestimmten Begriff suchen und das mit Hilfe einer UserForm.
Das Ergebnis soll dann in einer Listbox (oder vielleicht gibt es ja einen besseren Ansatz?) ausgegeben werden.
Also der oder die kompletten Datensätze sollen angezeigt werden wenn der Suchbegriff in dem jeweiligen Datensatz vorkommt. Ich habe jetzt schon so viele Ansätze probiert
aber komme leider nicht wirklich zum Ziel. Eine kleine vorgefertigte Beispieldatei füge ich mit an und hoffe das mir jemand helfen kann.


Vielen lieben DANK !!!
jokerjo1000


Angehängte Dateien
.xlsm   Teetasse.xlsm (Größe: 33,8 KB / Downloads: 11)
Top
#2
Hallöchen,

im Prinzip durchsuchst Du einen Datenbereich, in dem Du mehrere Treffer erhältst. Diese musst Du dann übernehmen. Vielleicht reicht Dir als Ansatz eine Lösung zu einem anderen Problem, die ich gerade gepostet habe. Schaue mal da:
http://www.clever-excel-forum.de/Thread-...#pid126607
Ich durchsuche dort die Spalte A nach dem Begriff "Track" und übernehme die Zeilennummern in ein Array. Du müsstest die Suche variabel gestalten und statt der Zeilennummern die Daten übernehmen. außerdem kann es bei Dir vorkommen, dass kein Treffer auftritt und, na ja, es geht auch nicht unbedingt mit dem ersten treffer in zeile 1 los.

Wie gesagt, soll nur ein Ansatz sein und ich weiß nicht, wie Du damit zurande kommst.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Danke schauan.....leider ist das gerade mein Problem, dass ich mit soooo komplexen Vorgaben noch nicht wirklich etwas anfangen kann obwohl ich mich seit einiger Zeit intensiv versuche einzulesen.

Trotzdem erst einmal DANKE für deinen Ansatz.
Top
#4
Hi

Zitat:leider ist das gerade mein Problem, dass ich mit soooo komplexen Vorgaben noch nicht wirklich etwas anfangen kann
Dann ist diese fertige Filtervorlage evtl. was für dich. Habe den Kriterienbereich schon mal an dein Vorhaben angepasst.
In G16 dein Suchbegriff und Doppelklick auf flitern. Beschreibung liegt bei.

.xlsb   Suche.xlsb (Größe: 48,36 KB / Downloads: 19)

Gruß Elex
Top
#5
Danke Elex,
leider bin ich auch noch dafür zu blöd. Versuche schon seit 3 Stunden deine Datei zu verstehen.
Leider ohne Erfolg. Aber auch wenn ich sie verstehen würde, ist es leider nicht das was ich brauche......sorry.
Trotzdem vielen Dank für deine Hilfe.

Ich bräuchte es schon mit der Maske !!!


Danke !!!
Top
#6
Hi jokerjo1000
 
Man kann das sicher auch deinem Wunsch entsprecht mit einer UF gestallten.
Ist dann aber bei weitem keine so flexible Lösung wie mit der Bsp.Datei.
Bevor ich dir das zurechtbastele beantworte bitte noch die Fragen.
 
1.
Wenn du in meine Bsp.Datei auf filtern Doppelklickst, erscheint doch erst einmal ein Ergebnis oder nicht?
Entspricht das Ergebnis vom Inhalt her den Erwartungen?
Das Ergebnis in der Bsp.Datei entspricht den Erwartungen, ich bekomme es nur nicht in meiner Datei zum laufen?
 
2.
Ergebnis aus Bsp.Datei soll genau so, nur eben in der UF angezeigt werden?
Wenn ja, was soll dann mit den Daten in der UF weiter passieren?

Gruß Elex
Top
#7
Hallo Elex,
sooooo jetzt habe ich deine Datei endlich verstanden....... Idea Idea Idea . Sorry aber ich brauche manchmal doch etwas länger.
Ich muss sagen "GENIAL". Jetzt weiß ich auch was du meinst mit mit den flexiblen Möglichkeiten. Einfach klasse !!!

Dafür schon einmal vielen vielen Dank.

Jetzt kommt jedoch ein wirklich "KLEINES" aber.
Es wäre schön wenn deine Datei über eine Maske/UserForm laufen könnte, wegen der Bedienbar und Übersichtlichkeit (Dann könnte man auch mit einem Tabellenblatt auskommen welches man z.B. "Suche" nennt).
Leider habe ich auch den ein oder anderen, der sich mit Rechnern bzw. Excel überhaupt nicht auskennt und auch der sollte wenn möglich diese Suchmethode bedienen können.

Im Grunde genommen brauche ich "nur" eine Maske wie in meiner Beispieldatei wo ich z.B. beim Suchbegriff einfach erdbeer eintippe und mir in einer Liste alle Tee's rausgesucht werden die irgend etwas mit erdbeer verbindet.
Diese Information brauche ich auch nur kurz und kann nach einer erneuten Suche wieder gelöscht werden. Oder nach klick auf einen Button "Eingabe löschen". Ein Highlite wäre natürlich wenn man die Suchergebnisse dann noch editieren könnte Blush .
Mein einziger Suchbereich ist auch immer die Tabelle/Datenbank im Tabellenblatt "Artikel".

Ich hoffe das war verständlich und nochmals vielen vielen Dank für deine Unterstützung !!!
Top
#8
Hallöchen,

ich würde diesen Code vorschlagen:

Code:
Private Sub Text_suche_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Variablendeklaration
'String, Integer
Dim strSearch$, iCnt%, iRow%
'Variant
Dim gefunden, arrList
'Object
Dim objTbl As ListObject
'Tabellenvariable zuweisen
Set objTbl = ActiveSheet.ListObjects("tab_tee")
'Suchtext aus Textbox uebernehmen
strSearch = Text_suche.Text
ReDim arrList(1 To 13, 1 To 2)
'Zeilenweise Suche, ab erster Datenzeile
For iCnt = 1 To objTbl.ListRows.Count
  'Suchbegriff finden
  Set gefunden = objTbl.ListRows(iCnt).Range.Find(What:=strSearch, After:=objTbl.ListRows(iCnt).Range(1, 1), LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
  'Wenn Suchbegriff gefunden wurde, dann
  If Not gefunden Is Nothing Then
      'Zeilenzaehler fuer Treffer hochsetzen
      iRow = iRow + 1
      'Wenn Zeilenzaehler >2, dann array neu dimensionieren
      If iRow > 2 Then ReDim Preserve arrList(1 To 13, 1 To iRow)
      'Schleife uebre 13 Spalten
      For icol = 1 To 13
        'Spalteninhalt dem Listen-Array hinzufuegen
        arrList(icol, iRow) = objTbl.ListRows(iCnt).Range(1, icol).Value
      'Ende Schleife uebre 13 Spalten
      Next
  'Ende Wenn Suchbegriff gefunden wurde, dann
  End If
'Ende Zeilenweise Suche, ab erster Datenzeile
Next
'Array transponieren
arrList = WorksheetFunction.Transpose(arrList)
'Array in Listbox uebernehmen
Me.ListBox1.List = arrList
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • jokerjo1000
Top
#9
Hi

Hier meine Vorschläge.


.xlsm   Suchen.xlsm (Größe: 27,88 KB / Downloads: 31)
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • jokerjo1000
Top
#10
Hallöchen,

Du musst bei Deiner Listbox auch noch die ColumnCount auf 13 setzen und bei Bedarf die Spaltenbreiten vordefinieren. Je nach Breite erhälst Du auch einen Scrollbalken und siehst nach dem Scrollen die restlichen Spalten Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste