Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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
Inhaltsverzeichnis

Daten aus Liste mit Makro suchen

Daten aus Liste mit Makro suchen
22.01.2018 17:26:22
Jochen
Hallo Leute,
ich habe ein Problem, Daten aus einer Liste nach bestimmten Kriterien zu holen.
Ganz stark vereinfacht dargestellt, muss das Makro folgendes leisten:
Ich muss einen Wert aus der Datenbankliste ermitteln. Die beiden Suchkriterien sind in Tabelle1: Krit1: A2 und Krit2 in A4 hinterlegt.
Die Kriterienspalten in der Datenbankliste sind in Tabelle2 für Krit1 = Spalte A und für Krit2 = Spalte B.
Die Ergebnisspalte ist die Spalte C in Tabelle2.
Das Ergebnis soll in Tabelle1/C2 eingetragen werden.
Es gibt noch eine Bedingung: Es soll nur ein Wert eingetragen werden, wenn beide Kriterien gefunden werden (logisch!) und die Ergebniszelle einen Wert hat. In allen anderen Fällen soll der Eintag "kein Wert vorhanden" vorgenommen werden.
Hier ist eine ganz stark vereinfachte Datei: https://www.herber.de/bbs/user/119165.xlsm
Da ich eine Lösung in eine "große" Datei integrieren muss, komme ich leider nur mit einer Makro-Lösung weiter!
Ich hoffe Ihr könnt mir helfen?
Vielen Dank
Jochen

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Liste mit Makro suchen
22.01.2018 18:24:08
Sepp
Hallo Jochen,
in das Modul von Tabelle1.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim varRet As Variant, varAnswer As Variant

On Error GoTo ErrorHandler
If Target.Address(0, 0) = "A2" Or Target.Address(0, 0) = "A4" Then
  varAnswer = "Kein Wert vorhanden!"
  Application.EnableEvents = False
  With Sheets("Tabelle2")
    varRet = Application.Match(Range("A2"), .Columns(1), 0)
    If IsNumeric(varRet) Then
      If .Cells(varRet, 2) = Range("A4") And .Cells(varRet, 3) <> "" Then
        varAnswer = .Cells(varRet, 3)
      End If
    End If
  End With
  Range("C2") = varAnswer
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: Daten aus Liste mit Makro suchen
22.01.2018 18:36:50
Jochen
Hallo Sepp,
vielen Dank für Deine Antwort.
ich glaube, ich habe die Aufgabenstellung nicht eindeutig beschrieben:
Die beiden Felder A2 und A4 sind immer mit Kriterien gefüllt!
Wenn ein Kriterium in der Datentabelle nicht gefunden wird, dann soll als Ergebnis "kein Wert vorhanden" eingetragen werden.
Wenn beide Suchkriterien in der Datentabelle vorhanden sind, aber in der Ergebnispalte ist die Zelle in der entsprechenden Zeile leer, dann soll ebenfalls "kein Wert vorhanden" eingetragen werden.
Also nur, wenn beide Suchkriterien vorhanden sind, soll der Wert der Ergebnisspalte (C) aus der entsprechenden Zeile als Ergebnis eingetragen werden.
In dem Textfeld in der Tabelle1 habe ich entsprechende Beispiele hinterlegt.
Gruß und vielen Dank
Jochen
Anzeige
Ausprobiert? Den genau das macht der Code! o.T.
22.01.2018 19:09:35
Sepp
Gruß Sepp

Sorry
22.01.2018 19:51:36
Jochen
Hallo Sepp,
sorry, das war mein Fehler!
Natürlich funktioniert Dein Code und das sehr gut.
Gruß und vielen Dank
Jochen
noch nicht ganz
22.01.2018 18:55:02
Jochen
Hallo Onur,
vielen Dank.
Bei Beispiel 3 (01.01.2018 & A] aus dem Textfald ermittelt die Formel 0,00. Hier müsste aber, da die Zielzelle (in Spalte C der Datentabelle) leer ist, als Ergebnis "kein Wert vorhanden" in der Ergebniszelle C2 stehen.
Wie übergibst Du der Funktion die beiden Suchfelder A2 & A4?
Kann man das Ganze auch ohne Funktion hinkriegen? In der Originaldatei ist die Verwendung einer Funktion in den zahlreichen Ergebniszellen problematisch.
Gruß und vielen Dank
Jochen
Anzeige
AW: noch nicht ganz
22.01.2018 18:59:16
onur
Ich hatte es bereits bemerkt und dir die neue version gepostet.
Schau einfach in der zelle C2 nach, dann siehst du, wie sie übergeben werden (entw. absolut oder relativ).
"In der Originaldatei ist die Verwendung einer Funktion in den zahlreichen Ergebniszellen problematisch"
Wieso das denn?
Prima
22.01.2018 19:04:45
Jochen
Hallo Onur,
das klappt wirklich sehr gut.
Ich denke, dass ich die Funktion mit Makro in der Originaldatei in die Zielzellen einfüge!
Das sollte klappen. (Der Zielbereich ist dynamisch, also ändert sich öfter)
Besten Dank auch für Deine Unterstützung.
Gruß
Jochen
AW: Prima
22.01.2018 19:10:18
onur
Wenn die "Datenbank" nicht auf Tabelle2, sondern auf einem anderen Blatt ist, musst du nur statt "Tabelle2" im code die richtige Tabelle angeben.
Ebenso kannst du Spalte 1,2 und 3 ggf anpassen.
Der code sucht bis Zeile 2000, auch das kannst du anpassen.
Anzeige
wirklich Klasse
22.01.2018 19:21:54
Jochen
Hallo Onur,
Du hast Recht!
Ich habe es gerade in meiner Originaltabelle getestet und es funktioniert hervorragend.
Mich beeindruckt, wie "klein" der Code ist.
Vielen Dank und Gruß
Jochen
AW: wirklich Klasse
22.01.2018 19:24:01
onur
Gern geschehen.
AW: Daten aus Liste mit Makro suchen
22.01.2018 18:44:20
onur
So, jetzt witr auch Spalte C berücksichtigt.
Ich habe extra eine Funktion genommen, da das einfacher auf deine datei übertragbar ist.
https://www.herber.de/bbs/user/119168.xlsm

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige