Berechnungsfehler, Runden, Nachkomma
21.09.2004 13:22:26
Mandix
Ausgangslage:
*************
Ich habe ein Problem mit meiner VBA Anwendung. In einer Form habe ich 3 Textboxen:
- tbSpeed (steht für Geschwindigkeit)
- tbDistance (steht für Strecke)
- tbDuration (steht für Zeit)
Die Werte für die Boxen liest sich die Applikation aus einem anderen Sheet. Wird ein Wert geändert, reagiert sie darauf, da die 3 Werte IMMER ZUSAMMENPASSEN MÜSSEN. D.h. speed = distance/duration muss immer stimmen. Excel liest speed und distance aus und errechnet dann die duration. die Werte aus der Liste haben dabei 1-3 Nachkommastellen.
Problem:
********
Bei einigen (nicht bei allen) Computern in unserer Fa. rechnet Excel eine falsche duration aus und zwar NUR DANN, wenn in der speed-box tbSpeed ein Wert mit 2 Nachkomma steht - wenn man eine dritte Nachkommastelle eingibt oder die 2te löscht, wird der Wert auf einmal richtig berechnet. Ic weiss echt nicht, warum - vielleicht kann mir einer sagen, was diese mysteriöse Sache sein soll.
Danke!!!
Source-Code:
************
Private Sub tbSpeed_Change()
If ((tbSpeed.value = "") Or (tbSpeed.value = 0)) Then Exit Sub
If ((changeSettings = True) And (tbDistance.value <> "") And (tbDistance > 0)) Then
tbDuration.value = Round(tbDistance.value / tbSpeed.value, 2)
End If
End Sub
Private Sub tbDistance_Change()
If ((tbDistance.value = "") Or (tbDistance.value = 0)) Then Exit Sub
If ((changeSettings = True) And (tbSpeed.value <> "") And (tbSpeed.value > 0)) Then
tbDuration.value = Round(tbDistance.value / tbSpeed.value, 2)
End If
End Sub
Private Sub tbDuration_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
'if time is entered, distance and speed are not interesting any longer
tbSpeed.value = ""
tbDistance.value = ""
End Sub