Suche mit VBA nach 2 Bedingungen
#1
Hallo zusammen,

ich habe jetzt über Stunden versucht eine Lösung für mein "Problem" zu finden, leider war nirgendwo was passendes dabei, daher bitte ich hier um Hilfe!


Problem

Eine Tabelle mit Daten in A1:E7.

In den Zellen I1 und I2 werden Suchbegriffe eingegeben, die dann (die Kombination aus beiden Suchbegriffen; es ist eine bestimmte Zeile) in den Zellen K , L und M die Lösung ausgeben 

Ich kann das im Moment auch schwer ausdrücken, habe mein Beispiel angehangen.



Nach 1 Suchbegriff kann ich suchen und dann wird ja auch nur die "erste gefundene" Lösung ausgegeben.

Vielen vielen Dank schon mal vorab!

Grüße
Ozzwald



.xlsm   Suchen nach 2 Bedingungen.xlsm (Größe: 20,03 KB / Downloads: 7)
Top
#2
Hallo,

das Wunschergebnis kannst du doch ganz einfach mit dem Autofilter erreichen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo,

natürlich würde das gehen.
Fände aber meine Variante irgendwie schicker; ist wohl auch einfacher mobil zu handeln. 

Außerdem würde ich auch wieder mal was dazu lernen bei Excel, auch wenn andere Wege auch zum Ziel führen.

Wäre klasse, wenn jemand eine Lösung hätte.

Merci! :)
Top
#4
Hallo,

ich weiß nicht, ob man etwas dazu lernt, wenn man einen schlechten Weg wählt.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#5
Hallo,

naja, die Frage dann ist, welche effiziente und hübsche Weg es dann ist?!

Ich finde die Suche die ich mit einem Feld habe besser, als manuell eine Tabelle nach Kriterien zu filtern. Zumal das ja nur ein Beispiel ist, wo Tabelle und Abfrage in einem Blatt liegen. Das Ziel ist es ja, die Abfrage in "mehr Drumherum" einzubauen: Die Frage hier ist erst der "Einstieg".

Welchen Weg, welches Makro etc. würdest du mir denn anbieten?
Top
#6
Hallo Ozzwald,

so z.B.:
Sub ZeileFinden_Kuwer()
Dim i As Long
Dim varErgebnis(1 To 1, 1 To 3) As Variant
Dim varSuch As Variant
Dim varTab As Variant

varSuch = Tabelle1.Range("I7:I8").Value
varTab = Tabelle1.Range("A1").CurrentRegion.Value
For i = 2 To UBound(varTab)
If varTab(i, 1) = varSuch(1, 1) Then
If varTab(i, 2) = varSuch(2, 1) Then
varErgebnis(1, 1) = varTab(i, 3)
varErgebnis(1, 2) = varTab(i, 4)
varErgebnis(1, 3) = varTab(i, 5)
Exit For
End If
End If
Next i

If i > UBound(varTab) Then
MsgBox "Leider nichts gefunden"
End If
Tabelle1.Range("K7").Resize(1, UBound(varErgebnis, 2)).Value = varErgebnis
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Ozzwald
Top
#7
Hallo Uwe,

wunderbar!

Vielen Dank für die Lösung (statt ....)! Mehr wollte ich nicht!

Lieben Dank!

Ozzwald
Top


Gehe zu:


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