Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Iteration

Begonnen von Jonny, April 25, 2012, 10:15:05

⏪ vorheriges - nächstes ⏩

Jonny

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

Wurliwurm

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

DF6GL

#2
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

MzKlMu

Hallo,
und wahrscheinlich könnte eine (Aktualisierungs) Abfrage das ohne VBA  und Schleife erledigen.

Vieleicht kanns Du ja mal die Rechenregel erläutern.
Gruß Klaus

Jonny

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

Josef P.

#5
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

ebs17

ZitatDurch die Schleife 100x bekommen ich einen Annäherungswert ...

Möglicher Ansatz für einen Genauwert: Verwendung der Zielwertsuche aus Excel.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard