Habe mich gestern schon mit dem Problem an euch gewendet, jedoch leider noch ohne Erfolg. Jetzt konnte ich das Problem eingrenzen!
Ausgangssituation:
Mein VBA Programm liefert(e) auf englischen Betriebssystemen falsche Werte. Dies hängt offensichtlich damit zusammen, das die Kommas zur Darstellung in einer UserForm von VBA in Punkt-Format umgewandelt werden.
Excel/VBA wandelt die Werte beim Einlesen in eine Userform (Formular) KORREKT in die Punkt-Form um (also einfach ein Punkt statt Beistrich) und beim Zurückschreiben von solchen Punkt-Werten in ein Excel Sheet werden die Werte auch wieder KORREKT in die Komma-Form zurückgewandelt. ABER...
Problem:
Bei Berechnungen innerhalb der Userform ignoriert VBA einfach den Punkt. Egal, ob ich den Wert einer Textbox (z.B. textbox123.value) direkt verwende oder ihn zuerst mit etwa CDbl auf einen Double-Wert konvertiere: in ALLEN FÄLLEN ignoriert VBA einfach den Punkt und rechnet mit den Ziffern als Ganzzahl! Warum?
Beispiel:
Im Sheet stehen die Werte: 2,5 / 0,5 / 0,02
In der Userform stehen dann die Werte: 2.5 / 0.5 / 0.02
Rechnen tut VBA aber mit: 25 / 5 / 2 !!!!!!!!!!!
Und ich habe schon alles probiert. Darunter folgendes:
- Werte mit Namen alleine auslesen (textbox123)
- Werte mit .value Attribut auslesen (textbox123.value)
- Werte mit .Text Attribut auslesen (textbox123.text)
- Werte auf Double konvertieren (CDbl(textbox...))
Also für mich ist das völlig unklar und schön langsam ziemlich ärgerlich. Das einzige was ich da noch vermuten kann ist, dass VBA die Werte zwar zu Punkt-Format konvertiert, RECHNEN aber dennoch mit Komma tut, d.h. die Punkte als Text liest und somit bei Berechnungen ignoriert.
Kann es sein, dass es mit der Ländereinstellung zusammenhängt, mit was VBA RECHNET? Aber warum wandelt er dann die Werte in Punkt-Form um, wenn er sowieso in Komma rechnet? Kann man in VBA umstellen, dass er die Werte aus dem Sheet nicht in Punkt-Form umwandelt?
VIELEN DANK, euer Manfred.