Solver Funktion automatisch aktualisieren, wenn Zelle verändert wird
#1
           
Hallo,

ich bin kompletter Neuling was Excel und VBA angeht, daher bitte ich um Hilfe.

Folgendes Problem:

Ich habe zwei Werte, bei der der eine dem anderen angenähert werden soll. Zunächst wollte ich das mit der Zielwertsuche lösen, allerdings habe ich da keine Möglichkeit gefunden, als Zielwert den Wert in einer Zelle, in diesem Fall C8 zu verwenden. 
Aus diesem Grund habe ich die Solver Funktion verwendet und das als Makro aufgezeichnet. Dieser Makro funktioniert auch manuell. Dabei habe ich folgenden Code bekommen(Bild 1). Dazu zunächst die Frage:

Warum ist der Code in Zeile beginnend mit SolverOk doppelt vorhanden? Ist das normal oder habe ich irgendwas falsch gemacht? 

Nun aber zu meinem eigentlichen Problem:

Wenn ich den Wert, an den sich angenähert werden soll (in diesem Fall "C8") ändere, muss ich den Makro manuell wieder ausführen. Ich hätte allerdings gerne, das dies automatisch bei Änderung des Werts passiert. 
Eine eventuell mögliche Lösung habe ich bisher im Internet gefunden für die Zielwertsuche.

https://spreadsheetweb.com/how-to-automa...e%20module

Diese habe ich dann einfach mal Versucht mit dem Solver umzusetzen. (Bild2).

Allerdings führt diese bei Änderung von C8 zu folgender Fehlermeldung (Bild3).

Nun ist meine Frage: hat jemand einen Vorschlag, wie ich diesen Fehler beheben könnte bzw. wie ich mein Grundproblem der Automatisierung anders lösen könnte?

Vielen Dank schonmal!
Antworten Top
#2
Hallo t...,

1. Was ist falsch an diesem Text?
Zitat:Zunächst wollte ich das mit der Zielwertsuche lösen, allerdings habe ich da keine Möglichkeit gefunden, als Zielwert den Wert in einer Zelle, in diesem Fall C8 zu verwenden.
...
Eine eventuell mögliche Lösung habe ich bisher im Internet gefunden für die Zielwertsuche.
Mit Zielwert als Wert aus einer Zelle.

2. Die "...Intersect(Target..." Abfrage im Beispiel ist kein reines Beiwerk.
Sowohl Zielwertsuche als auch der Solver ändern Zellen im Blatt,

was das Change-Event aufruft
was eine Zelle ändert
   was das Change-Event aufruft
   was eine Zelle ändert
      was das Change-Event aufruft
      was eine Zelle ändert
         was das Change-Event aufruft
         was eine Zelle ändert
            ---

3. Zu
Zitat:Warum ist der Code in Zeile beginnend mit SolverOk doppelt vorhanden? Ist das normal oder habe ich irgendwas falsch gemacht?
Ja. Blush
Der Code ist sogar doppelt zuviel.
Excel merkt sich die letzten Einträge der Solverparameter. Wenn sich also die Parameter nicht ändern reicht das solve.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • tt9911
Antworten Top


Gehe zu:


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