Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
500to504
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
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Punkt/Komma engl./dt. --> falsche Berechnung inVBA

Punkt/Komma engl./dt. --> falsche Berechnung inVBA
20.10.2004 09:19:07
Mandix
Hallo Leute...
Langsam werde ich verrückt. Ich habe in VBA eine Form erzeugt, die u.a. 3 Textboxen enthält, die Speed, Distance und Duration repräsentieren. Die Speed und Distance Boxen lesen sich Werte aus einem Sheet aus. Die Duration wird berechnet. Implementiert ist die Formel duration = distance / speed (Code siehe weiter unten). Bei mir läuft es überall bestens, auf manchen Rechnern berechnet er aber falsche Werte.
Ich habe das gesamte Programm in Excel 2003 entwickelt auf einer dt. Version von Windows XP Home. Wenn ich das Programm jetzt unter (vorwiegend) älteren und engl. Windows Versionen laufen lasse, berechnet mir VBA den Duration Wert MANCHMAL falsch. Sprich der Code funktioniert nicht korrekt. Excel bzw. VBA ignoriert das Komma einfach. Wenn ich in der Form die Werte raus lösche und neu eingebe, rechnet er auf einmal richtig. Er kommt also mit den aus dem Sheet gleesenen Werten nicht zurecht scheinbar. Das witzige ist: in einem 2000er Windows funktioniert es wieder, in einem anderen nicht. Woran kann das liegen?
Ich hab schon gedacht, dass es ggf. am Zahlenformat liegt. In Excel (zumindest im 2003er) kann man bei "Extras > Optionen > Internationale Einstellungen" die für gewöhnlich auf die Sprache des Betriebssystems eingestellte Kommasetzung umstellen. Bei Excel 2000 geht das z.B. wiederum nicht. Auf einem PC mit Excel 2002 war diese Umstellung die Lösung des Problems, also hat es doch was damit zu tun?
Ich verstehe sowieso nicht, warum das überhaupt ein Problem sein kann, ob Punkt oder Beistrich für Komma eingestellt ist. In VBA müßte dies doch egal sein. Oder hängt das schon mit den ausgelesenen Werten zusammen?
Source-Code:

Private Sub tbSpeed_Change()
If ((tbSpeed.value = "") Or (tbDistance.value = "") Or (tbSpeed.value <= 0) Or (tbDistance.value <= 0)) Then Exit Sub
If (changeSettings = True) Then
tbDuration.value = Round(tbDistance.value / tbSpeed.value, 2)
End If
End Sub


Private Sub tbDistance_Change()
If ((tbDistance.value = "") Or (tbSpeed.value = "") Or (tbDistance.value <= 0) Or (tbSpeed.value <= 0)) Then Exit Sub
If (changeSettings = True) 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


Private Sub tbDuration_Change()
'set durations of all runs to new value
bResetAllDurations_Click
End Sub

Vielen Dank für eure Hilfe...

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Punkt/Komma engl./dt. --> falsche Berechnung i
RALF
Moin,
dieses Problem kann man - denke ich - endgültig mit Word lösen....schreib 'nen Drohbrief an Microsoft ;O)
Zur Problembehebung ein Vorschlag:
Lass Dir doch mal ausgeben, was genau in der Textbox steht (als string) und wandel das Dezimaltrennzeichen (egal ob komma oder punkt als Dezimaltrennzeichen verwendet wird) grundsätzlich in einen Punkt um und übergib den Wert dann an eine Variable, die ein Zahlenfomat hat, bevor Du damit weiterrechnest.
Gruß RALF
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige