Hallo,
ich brauche eine eigentlich Endlosrechnung innerhalb einer Kalkulation.
Mein Ansatz:
I = 0
While I < 100
FormVar!KorrekturBrancheMenge = FormVar!VKNachKorrektur / Branche!Auftragswert
FormVar!KorrekturBrancheGPreis = FormVar!KorrekturBrancheMenge * FormVar!KorrekturBrancheEPreis
FormVar!VKNachKorrektur = FormVar!VKNachKorrektur + FormVar!KorrekturBrancheGPreis
I = I + 1
Wend
VKNachKorrektur ist das Endergebnis
Branche!Auftragswert ein Parameter aus einer Vorgabetabelle z. Zt. 600
KorrekturBrancheEPreis auch ein Parameter z. Zt. 25
Jetzt kommt so ein wahnsinnig hoher Endpreis.
Mache ich das als Berechnung in Excel mit zugelassenen Zirkelbezug ist das Ergebnis ok.
Jemand eine Idee wo ich den Fehler habe?
Gruß
Johann
Hallo Jonny,
ich kann in der Berechnung spontan keinen Fehler sehen.
Allerdings würde ich das ganze in ein Funktion packen und dort in einer For-Schleife berechnen. Möglich, daß beim direkten Rechnen über die Textfelder hinweg etwas danebengeht. Hast Du das ganze schonmal im Debug-Modus durchlaufen?
Grüße
Johannes
Hallo,
versteh den Ansatz nicht...
"eine eigentlich Endlosrechnung " ??
Was soll eigentlich überhaupt berechnet werden?
Was ist, bzw. woher kommt dieser Wert: Branche!Auftragswert
FormVar!VKNachKorrektur = FormVar!VKNachKorrektur + FormVar!KorrekturBrancheGPreis
wird halt sooft ausgeführt wie der Abbruchwert der While-Schleife (hier 100) aussagt.
Genauso gut könnte man ohne While-Schleife sowas machen:
FormVar!VKNachKorrektur = FormVar!KorrekturBrancheGPreis *100
Hallo,
und wahrscheinlich könnte eine (Aktualisierungs) Abfrage das ohne VBA und Schleife erledigen.
Vieleicht kanns Du ja mal die Rechenregel erläutern.
Hallo,
erst einmal vielen Dank für Eure Antworten.
ich hab den Fehler gefunden. Er lag bei der Berechnung vom Gesamtwert.
Hier mussten Felder addiert werden um Gesamt zu bekommen (hatte Ihr keine Change das zu finden, Entschuldigung).
Sinn der Berechnung ist folgender:
Vom Gesamtwert müssen Kosten berechnet werden. Diese Kosten werden dann wieder auf den Gesamtwert addiert.
Das führt natürlich zu einer Endlosschleife. Durch die Schleife 100x bekommen ich einen Annäherungswert der dann nicht auf
den letzten Cent OK ist, aber ausreicht.
Gruß
Johann
Hallo!
Wäre es vielleicht genauer, wenn man die Iterationen so lange durchführt, bis ein bestimmter Genauigkeitswert erreicht ist?
Beispielsweise: Wert aus letztem Iterationsschritt weicht nur noch um 0,001 EUR vom aktuellen Iterationsschritt ab. Das funktioniert natürlich nur dann, wenn sich das Ergebnis um einen Wert einpendelt.
mfg
Josef
ZitatDurch die Schleife 100x bekommen ich einen Annäherungswert ...
Möglicher Ansatz für einen Genauwert: Verwendung der Zielwertsuche aus Excel.
MfGA
ebs