Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Berechnungsfehler, Runden, Nachkomma

Berechnungsfehler, Runden, Nachkomma
21.09.2004 13:22:26
Mandix
Hallo Leute...
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechnungsfehler, Runden, Nachkomma
21.09.2004 15:42:02
Otto
Hallo Mandix,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
Du weißt, dass in einer Textbox Texte stehen. tbSpeed.value lieferet also einen Text zurück. Diesen Text musst Du zuerst vernünftig in eine Zahl wandeln, damit Du damit weiterarbeiten kannst. Sinnvoll ist hier die Funktion CDbl(). Du sprichst dabei auch von Nachkommastellen. Gebt Ihr für das Komma ein Komma ein oder einen Punkt?
Zum Testen empfehle ich, auf jeden Fall die Werte der Textboxen in verschiedene Zellen der Arbeitsmappe zu speichern.
Gruß Otto
AW: Berechnungsfehler, Runden, Nachkomma
21.09.2004 16:46:50
Mandix
Tja, das mit dem Umformatieren ist so eine Sache. Ich werde das mal versuchen. Wir verwenden übrigens die deutsche Kommasetzung - die automatisch eingestellte verwendet ja die des OS und das ist bei den meisten hier Englisch, daher haben wir manuell auf deutsch umgeschalten.
Ich meine nur, es läuft ja sonst auch, nur halt bei manchen PCs komischer Weise nicht. Auf einem Rechner ist es kurz Mal nicht gelaufen, später dann doch. Leider war ich nicht darauf tätig udn weiss nicht, was der User in der Zwischenzeit am Rechner umgestellt haben könnte.
Danke dennoch... ciao.
Anzeige
AW: Berechnungsfehler, Runden, Nachkomma
21.09.2004 16:57:01
Otto
Hallo Mandix,
Du weißt, das VBA in der Regel nur Englisch versteht. Du musst bei Zahlen also den Punkt für das Komma schreiben, wenn Du es nicht extra behandeln willst.
Gruß Otto

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige