Thema Datum  Von Nutzer Rating
Antwort
Rot GOAL SEEK Problem
16.11.2016 10:19:36 Daniel
NotSolved
18.11.2016 14:30:13 BigBen
NotSolved
21.11.2016 11:10:34 Daniel
NotSolved
19.11.2016 20:51:54 Gast14351
NotSolved
19.11.2016 20:56:07 Gast14351
NotSolved
19.11.2016 21:18:37 Gast27766
NotSolved
27.11.2016 22:47:28 Daniel
NotSolved
28.11.2016 06:17:06 Gast12161
NotSolved
28.11.2016 08:59:03 Gast71991
NotSolved
06.12.2016 04:14:53 Daniel
NotSolved

Ansicht des Beitrags:
Von:
Daniel
Datum:
16.11.2016 10:19:36
Views:
1532
Rating: Antwort:
  Ja
Thema:
GOAL SEEK Problem

Hallo liebes Forum,

ich bin begeisterter Excel-User und habe es bisher immer geschafft ohne VBA auszukommen. Bin also nicht gerade ein VBA-Fan ;)

Jetzt habe ich aber bei einer ziemlich großen Excel-Datei ein Problem was ohne VBA nicht gelöst werden kann. Ich beschreibe kurz die Problematik:

Es handelt sich um eine Schussbahnberechnung. Die Bewegung eines Projektils wird aus nicht näher zu erläuternden Gründen in 70 Segmente unterteilt, und die einzelnen Segmente werden in Abhängigkeit voneinander, nacheinander berechnet. Jedes Segment kommt in einer Abfolge von Berechnungen zu einer Stelle, an der eine nichtlineare Formelgleichung entsteht. Der gesuchte Wert "s" wird für die weitere Berechnung im selben Segment benötigt um damit die Vorrausetzung zum Berechnungsstart des nächsten Segmentes zu liefern. Das VBA-Skript wird also mit anderen Zielzellen etwa 70 mal benötigt.

Nun zum eigentlichen Berechnungsproblem; Es gibt im ersten, exemplarischen, Segment drei Zellen

B62 enthält den Energiedifferenzwert deltaE, welcher hier als ZIELWERT der Gleichung dient.

B63 enthält die Formelgleichung welche viele Variablen enthält, darunter eine Variable mit der Bezeichung B65.

B65 soll den zu ändernden Wert enthalten.

Das Skript soll starten, wann immer die Zelle B62 verändert wird. Und den Wert "s" liefern um eine weitere Berechnung zu ermöglichen.

 

Mithilfe von der VBA-Hilfe und Freunden bin ich zu folgenden Skript gekommen:

Private Sub Worksheet_Change (ByVal Target As Range)

Dim Keycells as Range

Set Keycells = Range ("B62")

Cells(Target.Row, 4).GoalSeek_

Goal:=Cells(Target.Row, 3),_

ChangingCell:=Target

End Sub

 

Nun diese Skript funktioniert einerseits nicht. Andererseits kenne ich wohl auch nicht die richtige Art es überhaupt zu starten, ich habe es in die 2.Tabelle geschrieben. Wenn ich es starten will, fordert mich VBA dazu auf ein Makro zu benennen oder zu starten. In der Liste des Dialogfeldes ist aber kein zur Verfügung stehendes Makro eingetragen. Also ich kann es nicht benamen, weil ich nicht weiß wie, ich weiß nicht ob es im Modul1 oder in der Tabelle 2 stehen soll oder muss. Und schließlich stimmt wohl an der Zuweisung der Zellen etwas nicht.

Ich wäre sehr dankbar wenn mir da jemand in der Form helfen könnte ein Makro nicht nur zu erstellen sonder auch so zu integrieren das es in der oben beschriebenen Weise funktioniert.

 

Liebe Grüße

Daniel

 

 

 

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen