Clever-Excel-Forum

Normale Version: Funktion gesucht: wenn Wert "x" erreicht, dann nicht mehr ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

vorab die üblichen Formalitäten:
Ich bin neu im Forum und ja, ich habe die Suchfunktion verwendet (habe aber leider keine Ahnung wonach genau ich suchen muss, daher blieb meine Suche bisher erfolglos).


Meine Situation:
Ich habe eine Tabelle für mich erstellt, um bei gewissen Dingen auf einen Blick in die Tabelle immer auf dem neusten Stand zu bleiben und um meine Arbeit zu archivieren.
In der Tabelle 1 befinden sich die Informationen, die ich einsehen möchte.
Spalte A enthält eine Bestellnummer.
Spalte B ein Datum.
Spalte C einen Status.
In der Tabelle 2 sind alle aktuellen (keine beendeten) Vorgänge als Export, aus einem anderen Programm in Form einer .csv-Datei.
Dort befinden sich die gleichen Informationen in den gleichen Spalten wie in Tabelle 1.

Zur Verdeutlichung ein Beispiel hier:
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Die Bestellnummer wird in Tabelle 1 von mir manuell eingetragen und die Werte, für die jeweiligen Zellen in B und C, werden mithilfe der SVERWEIS-Funktion aus Tabelle 2 entnommen.

Mein Problem:
Nun sind in Tabelle 2 jedoch nicht mehr die Bestellnummern bei Bestellungen im Status "Zahlung erhalten" aufgelistet, da diese Bestellungen bereits beendet sind.
Also wird mir der Wert für die Zellen in B und C bei abgeschlossenen Bestellungen nicht mehr aufgelistet.

Meine Frage:
Gibt es eine Funktion in Excel, die mir die letzten Werte aus einer Funktion anzeigt, nachdem die Funktion quasi "nicht mehr gültig" ist, da der Bezug fehlt?
Ich möchte mir sozusagen einen "war mal x"-Wert ausgeben lassen...


Ok, ich hoffe jemand versteht, was ich zu sagen versuche und hat einen Lösungsvorschlag für mich.
Danke! :)
Hallo

Ich rate mal.
Code:
=WENNNV(Deine_Formel;"Zahlung erhalten")
Auch Hallo,

oder falls Du VBA verwenden kannst (Code gehört in das Tabellenmodul)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngTreffer As Range
  
   If Not Intersect(Target, Columns(1)) Is Nothing Then
      Application.EnableEvents = False
      Set rngTreffer = Worksheets("Tabelle2").Columns(1).Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
      If Not rngTreffer Is Nothing Then
         Cells(Target.Row, 2).Value = Worksheets("Tabelle2").Cells(rngTreffer.Row, 2).Value
         Cells(Target.Row, 3).Value = Worksheets("Tabelle2").Cells(rngTreffer.Row, 3).Value
      Else
         MsgBox "Artikel nicht mehr vorhanden", vbInformation, "Info"
         Application.Undo
      End If
      Application.EnableEvents = True
   End If

End Sub
@shift-del:
Naja... War anfangs auch meine Idee, aber:

Das Problem ist, dass ich dann neue Einträge in meiner Tabelle 1, nicht mehr von alten bzw. abgeschlossenen Einträgen unterscheiden kann.

Was ich also eher brauche:
Wenn der Wert "x" ("x" einfach mal als Platzhalter für "Zahlung erhalten") bereits ein mal erreicht ist, dass der Wert in der Tabelle 1 dann unverändert bleibt.
Quasi wie als wenn ich sagen würde "wenn < "Zahlung erhalten", dann "Zahlung erhalten", sonst "[aktueller Wert]"
@Steffl:
Leider kenn ich mich mit VBA gar nicht, außer dass ich weiß, wie man VBA einfügt...
Ist also quasi ein Makro, oder?
Hallo,

wie Du mein Makro bei dir einfügen kannst wird dir hier gezeigt (Es ist der dritte Punkt: Codefenster der Tabelle).
(19.04.2017, 20:22)madikarus schrieb: [ -> ]Das Problem ist, dass ich dann neue Einträge in meiner Tabelle 1, nicht mehr von alten bzw. abgeschlossenen Einträgen unterscheiden kann.
Den Zusammenhang verstehe ich nicht.

(19.04.2017, 20:22)madikarus schrieb: [ -> ]Was ich also eher brauche:
Wenn der Wert "x" ("x" einfach mal als Platzhalter für "Zahlung erhalten") bereits ein mal erreicht ist, dass der Wert in der Tabelle 1 dann unverändert bleibt.
Quasi wie als wenn ich sagen würde "wenn < "Zahlung erhalten", dann "Zahlung erhalten", sonst "[aktueller Wert]"
Dann bastel dir eine dritte Tabelle in der alle erledigten Aufträge stehen und greife im Fehlerfall darauf zu.
Code:
=WENNNV(SVERWEIS1();SVERWEIS2())
Hi Detlef,

(19.04.2017, 20:59)shift-del schrieb: [ -> ]Den Zusammenhang verstehe ich nicht.

ein neuer Eintrag in Tabelle1, der noch nicht angenommen ist, hat ja auch in Tabelle2 noch keinen Status, deswegen würde dann wie bei Einträgen, die abgeschlossen sind, da auch "Zahlung erhalten" stehen.
Hi,

mich würde interessieren, warum das :


Zitat:Nun sind in Tabelle 2 jedoch nicht mehr die Bestellnummern bei Bestellungen im Status "Zahlung erhalten" aufgelistet, da diese Bestellungen bereits beendet sind.

so ist. Das dürfte gar nicht sein!
Hallo Ralf

(20.04.2017, 10:37)Rabe schrieb: [ -> ]ein neuer Eintrag in Tabelle1, der noch nicht angenommen ist, hat ja auch in Tabelle2 noch keinen Status, deswegen würde dann wie bei Einträgen, die abgeschlossen sind, da auch "Zahlung erhalten" stehen.
Wenn in Tabelle2 ein neuer Auftrag ohne Status-Text stehen würde dann würde der SVERWEIS() auch das "leere" Feld anzeigen nicht #NV.
Seiten: 1 2