für ein Vergleichstool von Stücklisten wird der BAuteilpreis mit eingelesen aus einer Tabelle, die automatisiert aus einem CAD Programm erstellt wird. Das Programm legt die Preise als String an ('0.092). Für die Verarbeitung in der Vergleichstabelle soll dieser String nun in eine Zahl umgewandelt werden. Da bei mir und bei unserem Kunden scheinbar unterschiedliche Regionaleinstellungen was Dezimaltrennzeichen etc. eingestellt sind, läuft das Makro bei mir einwandfrei durch, beim Kunden werden allerdings die Dezimalzeichen bei der Berechnung der Preisdifferenz verschluckt. (Siehe Bild)
Um Mit den "String Werten" richtig rechnen zu können und unabhängig von eingestellten Dezimalzeichen zu werden habe ich für die Berechnung einen expliziten Typecast mit CDbl vorgenommen, da dieser bei der Umwandlung zu Double das eingestellte Regionalschema berücksichtigt (laut MSDN).
Allerdings führt dieser zu der oben gezeigten Ausgabe.
Gibt es zu dem Typecast noch Alternativen?
Quote1 = CDbl(.Cells(HelpingPointer + FirstRowData + 1, LastColumnData + 8))
Quote2 = CDbl(.Cells(HelpingPointer + FirstRowData + 1, LastColumnData + 4))
QuoteResult = Quote1 - Quote2
.Cells(HelpingPointer + FirstRowData + 1, LastColumnData + 10) = QuoteResult
Vielen Dank
Christoph