Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1708to1712
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
Dynamische Suche mit mehreren Kriterien
21.08.2019 16:01:11
Alex
Servus zusammen,
ich habe eine große Excelliste (A1:CA8700) und habe mir über eine Userform eine Suchfunktion gebaut.
Es gibt insgesamt 7 Suchfelder, die entsprechend in der Datei 7 Spalten durchsuchen.
Das Suchergebnis wird live/dynamisch in einer Listbox mit 7 Spalten entsprechend dargestellt.
Ich suche mit dem Standard Set rng = Range("F:F").Find(What:=...........)
Mit einer Suche ist das kein Problem und funktioniert alles.
Wenn ich in das 2. Feld was eingebe, wird das 1. Suchkriterium (logischerweise) übergangen und es wird nur nach dem 2. Suchkriterium angezeigt.
Problem:
Wie bekomme ich die 7 Suchkriterien alle miteinander verknüpft, dass nur die Kombination aus den Suchkriterien angezeigt werden?
Danke und Gruß
Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Suche mit mehreren Kriterien
21.08.2019 16:35:39
Luschi
Hallo Alex,
ich mache das so:
- Set rng = Range("F:F").Find(What:=...........)
- anschließend überprüfe ich, ob in der selben Zeile des gefundenen Wertes in Spalte 'H'
  der Inhalt mit dem Wert aus dem 2. Suchkriterium übereinstimmt
  If rng.Offset(0, 2).value = '2. Suchkriterium' Then
- wenn nein einfach in Spalte 'F' mit FindNext weitersuchen
- wenn ja, dann wieder prüfen, ob der Inhalt der Spalte 'K' der selbe Zeile mit dem 3. Suchkriterium
  übereinstimmt usw.
- Sollte es eine Fundstellte in Spalte 'F' geben, bei der auch die anderen 6 Bedingungen der
  entsprechen den Zeile passen, dann diese ZeilenNr. merken
Also nur einen Find-Befehl mit den entsprechenden FindNext, der Rest sind If-Abfragen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Dynamische Suche mit mehreren Kriterien
21.08.2019 17:02:52
Daniel
Hi
1. schreibe den Inhalt der Textfelder in 7 Zellen. Entweder über die Eigenschaft ControlSource oder wenns schneller gehen soll per Code im Change-Event der jeweiligen Textbox
2. füge der Tabelle eine Hilfsspalte hinzu mit folgender Formel (schematisch)
=Oder(ZelleText1="";ZelleText1=F1)+Oder(ZelleText2="";ZelleText2=H1)+usw für alle 7 Textzellen
je nachdem welchen Übereinstimmungstyp du haben willst, kannst du das ZelleText1=F1 noch variieren:
a) genaue Übereinstimmung: ZelleText1 = F1
b) immer mit Enthält, Groß-Kleinscheibung beachtent: IstZahl(Finden(ZelleText1;F1)
c) immer mit Enthält, ohne Groß-Kleinschreibung: IstZahl(Suchen(ZelleText1;F1)
d) Anwender soll über Joker die Suchart bestimmen können: ZählenWenn(F1;ZelleText1)
3. für die Befüllung deiner Listbox musst du dann nur noch diese zusätzliche Hilfsspalte nach dem Wert 7 durchsuchenn
Gruß Daniel
Anzeige
AW: Dynamische Suche mit mehreren Kriterien
22.08.2019 11:43:26
Alex
Servus zusammen,
Luschi deine Lösung wird nicht funktionieren oder es wird ein Monstercode.
Es gibt 7 Suchfelder, aber es gibt keine feste Suchreihenfolge. Ich kann also erst in das Suchfeld 5 was eingeben, dann bei 2 und dann wieder was bei 7.
Daniel, deine Lösung habe ich nicht so ganz verstanden...
Am einfachsten wäre es doch, dass ich nach dem ersten Suchergebnis - was dann in der Listbox steht - in der Listbox suche und nicht mehr in der Tabelle.
Analog der andere Suche müsste ich dann analog mind. 3 Buchstaben im 2. Suchfeld eingeben und der sucht in der Listbox und schmeoßt alle Einträge raus, die nicht passen.
Ist das Möglich?
Anbei mein Code für das 1. Suchfeld:
Private Sub TextBox2_Change()
Dim rng As Range
Dim sAddress As String
Dim ZSuche As Integer
ListBox1.Clear
If TextBox2 = "" Or TextBox2 = " " Or Len(TextBox2) 
P.S.: Spalte 8 der Listbox dient nur dazu mit einem Doppelklick in die entsprechende Zeile zu springen.
Danke und Gruß
Alex
Anzeige
AW: Dynamische Suche mit mehreren Kriterien
23.08.2019 11:11:18
Luschi
Hallo Alex,
Deine Kritik ist angebracht, aber ohne Demodatei rühre ich da keinen Finger. Habe verstanden, was Du willst, aber das ist doch ein bißchen mehr als nur helfen:
- denn bei jedem! verändern der Filterbedingungen in irgend einem Suchfeld müssen die anderen
  6 Kriterienfelder neu angepaßt werden
- es dürfen dann nur noch die Infos in den restlichen Auswahlfeldern stehen, die noch möglich sind
- das ist aber über die normale Vba-Programmierung sehr aufwendig
- ich verwende dazu die Datenbankfunktionalität von ADODB, also SQL-Code, der auch in Excel-Vba funktioniert.
Gruß von Luschi
aus klein-Paris
Anzeige

257 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige