Liebe Leute,
ich möchte einen Zahlenwert mit 3 Nachkommastellen darstellen.
Dazu verwende ich ein Makro, welches mir den Wert in einer Variable (varStr) abspeichert.
Diesen Wert richtig formatiert. Wie erwartet wird der richtige Wert (zB. 34,193) in der MsgBox ausgegeben.
Jedoch beim Schreiben in die Zelle verschwindet das Komma.
Ich denke, dass dieses dann plötzlich als Tausender-Trennzeichen aufgefasst wird.
CODE:
Sub dblMitKomma()
ActiveSheet.UsedRange.Offset(0, 1).Clear
Dim cel As Range
Dim rng As Range: Set rng = Range("A1:A6")
Dim valStr As String
For Each cel In rng.Cells
With cel
valStr = cel.Value
valStr = Format(valStr, "0.000")
'MsgBox valStr & ", Type: " & VarType(valStr)
cel.Offset(0, 1) = valStr
End With
Next cel
End Sub
Interessanterweise wird der Wert "0" richtig als 0,000 dargestellt, weil er diesen als Text interpretiert, aber sobald eine Zahl erkannt wird, wird das Komma entfernt.
Was ich schon probiert habe:
- Als Double abspeichern und mit FormatNumber formatieren. Das zeigt mir leider nicht immer die 3 Nachkommastellen an..
- Die Zellen davor zu clearen (ClearFormat, ..) hilft auch nicht
- Richtige Einstellungen im Worksheet direkt vornehmen. Diese werden aber immer verworfen sobald ich den Wert wieder durch das Makro einsetze.
- Replace(valStr, "," , ".") vor dem Einsetzen -> Somit verschwindet wieder die Formattierung
Dann wird 3,33333 richtig als 3,333 angezeigt aber 4 würde ohne Nachkommastellen angezeigt werden.
Vielen Dank schon mal und LG,
Dennis
|