Clever-Excel-Forum

Normale Version: Wert erhalten lassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Community,

ich hätte eine Frage und habe dafür eine Datei hochgeladen!

Vielen Dank im Voraus!
Ich hätte evtl. eine Antwort …
Aber warum sollte ich mir dafür zunächst eine Datei herunterladen?
Wenn ich ins neue Restaurant gehe, schaue ich zunächst in die Karte und bestelle nicht "blind"!
Anbei die Frage:

Ich kann nur per VBA eine Zielwertsuche durchführen, um mir den passenden Wert 1 zu berechnen um den gewünschten Cash-Flow zu bekommen.

Wie kann ich aber nun den Kaufpreis per Knopfdruck in G7 anzeigen lassen (den ich per VBA ausgerechnet habe), und wie wird mir anschließend der ursprüngliche Wert 1 in C3 wieder angezeigt (mit dem alten Cash-Flow)? Sodass beide Werte dauerhaft ersichtlich sind?
Wenn Du folgende Formel in G7 schreibst
=(2000-G8)/0,01
liefert sie Dir für jeden CF, den Du in G8 eingibst, den passenden Wert 1.

Ohne Zielwertsuche, ohne Makro.

Hoffe, damit kommst Du auf die Sprünge.

Raoul
Hallo MoeJoe,

das, was Du brauchst ist eine Umkehrfunktion einer Funktion, die Du nicht kennst, bzw. nicht kennen musst, um das passende Funktionsargument eines gegebenen Funktinswertes zu finden.

Gegeben ist eine Funktion, die die Cashflow eines Kaufpreises berechnet. Du möchtest aber den Kaufpreis ermitteln, der einen gegebenen CashFlow bewirkt.

Das wird in folgendem Makro mit "Zielwertsuche" zusammen mit "Datentabelle" erreicht.

Sobald Du diesen Code in das Tabelle1-Modul kopiert hast, wird Dir jedes mal, wenn Du in G8 einen gewünschten CashFlow eingibst, in G7 der passende Kaufpreis angezeigt.

Code:
'gehört ins Modul Tabelle1

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Range("G8"), Target) Is Nothing Then Exit Sub
   Application.ScreenUpdating = False
   Application.EnableEvents = False
   Range("G7").ClearContents
   Range("H6").Formula = "=C8"
   Range("G6:H7").Table ColumnInput:=Range("C3")
   Range("H7").GoalSeek Goal:=Range("G8").Value, ChangingCell:=Range("G7")
   Range("H6:H7").ClearContents
   Application.EnableEvents = True
   Application.ScreenUpdating = True
End Sub

Dabei werden die Zellen H5 und H6 benötigt, also übeschrieben.

Die Formel des CashFlows spielt hier keine Rolle. Es werden nur die Zelle für den Eingangswert und die Zelle mit dem Ergebnis verwendet.

Ob es eine einfachere Möglichkeit gibt, würde mich selbst interessieren.

Aber vielleicht genügt das fürs Erste.

Mit bestem Gruß,
Raoul
Hallo MoeJoe,

wenn die angebotene Lösung Dein Probelm nicht löst, dann würde mich interessieren, wie weit Du damit gekommen bist. Ich habe mich jedenfalls bemüht, möglichst verständlich zu antworten.

In meiner ersten Antwort habe ich ich die händlisch ermittelte Umkehrfunktion eingebaut. Und in meiner zweiten Antwort habe ich einen Weg gefunden, der nur mit Funktionsargument und -wert arbeitet, ohne die Funktion selbst kennne zu müssen. Zu keiner Antwort hast Du Stellung genommen.

Oder ist etwa fehlerhaft? Habe lang herungetüftelt.

Gruß,
Raoul
Das Problem hat man bei vielen Fragern, die sich menschlich am Ende gar nicht oder wie Zombies verhalten:
  1. Kein Feedback, 
  2. noch nicht mal ein Nachschauen, 
  3. oft eben noch eine Frage am Freitagnachmittag abgesetzt, um gnädigerweise dann irgendwann am Montag oder Dienstag zurück auf Arbeit diese zu testen und sie dann nicht zu verstehen, während Du schon 10 oder 60 Minuten nach Fragestellung fertig warst
  4. unspezifizierte Diskussionsenden wie: "Ich habe es selbst gelöst (aber wie?)" oder "Ihr (aber wer?) habt mir geholfen"
Da musst Du durch. Die einzige Befriedigung kannst Du dann daraus ziehen, Dich selbst zu beobachten, wie schnell Du die Lösung erstellen konntest und ob Du vielleicht sogar etwas Besonderes oder Allgemeingültiges herausgefunden oder für spätere Lösungen eine Erkenntnis gewonnen hast.

Geht es um (evtl. in der Frage verstecktes) Allgemeingültiges, ist mir sogar jedes Frager-Crossposting oder -Fehlverhalten egal. Das muss dann einfach schon aus intellektuellem Anreiz gelöst werden.
Danke LCohen,
danke für Deine mitfühlenden Worte.
In diesem Fall war das Thema schon für mich interessant genug, dafür Zeit aufzuwenden.
Einen schönen Sommer wünscht Raoul.