Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
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
Find Methode mit mehreren Suchbegriffen
Shizoe89
Hallo Excel-Freunde,
ich arbeite gerade an einer umfangreichen Datenbankabfrage über ein Userform. Dabei nutze ich für die Suchfunktion die Find-Methode in folgender Form:
lngSpUmbr = erste freie Spalte (das rechte Ende der Datenmatrix)
Set rngZelle = Tabelle1.UsedRange.Find(strSearch, Tabelle1.Cells(lngZeile, lngSpUmbr))
lngZeile = rngZelle.Row
Durch das Suchen ab der lngZeile (public) und lngSpUmbr (public) kann ich durch erneutes Drücken des Suchen-Buttons immer das nächste Ergebnis in der Tabelle abfragen.
Nun würde ich gerne auch kombinierte Suchen starten. Wenn ich quasi in Zeile1 Auto und LKW, in Zeile 2 Auto und PKW und in Zeile 3 PKW und LKW stehen habe, und nun nach "PKW Auto" suche, soll er für diese Suche nur Zeile2 ausgeben.
Ist das prinzipiell möglich?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nein, ist SO nicht möglich !
21.06.2012 15:28:39
NoNet
Hallo Shizo,
die Excel-Suche sucht immer nur in EINZELNEN Zellen nach den Werten, NIE nach Zellkombinationen in einer Zeile !
Du könntest stattdessen den Autofilter verwenden oder auch eine Hilfsspalte(siehe Beispiel, Spalte C) mit einer passenden Funktion und nach dem Wert dieser Spalte (WAHR) suchen :
ABC
1
2
3
4
5
6
7

Zelle Formel 
C5   =ANZAHL(VERGLEICH($C$1;A5:B5;0);VERGLEICH($C$2;A5:B5;0))=ANZAHL2($C$1:$C$2) 
C6   =ANZAHL(VERGLEICH($C$1;A6:B6;0);VERGLEICH($C$2;A6:B6;0))=ANZAHL2($C$1:$C$2) 
C7   =ANZAHL(VERGLEICH($C$1;A7:B7;0);VERGLEICH($C$2;A7:B7;0))=ANZAHL2($C$1:$C$2) 

In diesem Beispiel musst Du nur die Suchbegriffe in C1:C2 ändern !
Gruß, NoNet
   - 1:3


http://www.exceltreffen.de/index.php?page=224
Anzeige
AW: Nein, ist SO nicht möglich !
22.06.2012 10:49:26
Shizoe89
If lngZeile = 0 Then
searchphrase = Split(Abfrage.TextBox1.Value, ",")
strSearch = searchphrase(0)
On Error Resume Next
strSearch2 = Trim(searchphrase(1))
If strSearch2 = "" Then strSearch2 = "*"
On Error GoTo 0
End If
RE2:
Set rngZelle = Tabelle1.UsedRange.Find(strSearch, Tabelle1.Cells(lngZeile, lngSpUmbr))
lngZeile = rngZelle.Row
On Error Resume Next
Set rngZelle2 = Tabelle1.Rows(lngZeile).Find(strSearch2)
lngZeile2 = rngZelle2.Row
On Error GoTo 0
If lngZeile lngZeile2 Then GoTo RE2
so funktioniert es. aber Effizienz ist auch was anderes.. ;-)
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige