Excel rundet trotz ausreichender NKS
Hallo zusammen,
ich zapfe eine Datenbank an und bekomme einen Wert Einkaufspreis 0,0758.
Obwohl die Zelle mit 5 NKS im Frontend formatiert ist wird dort 0,08 eingetragen. Den Wert aus der Datenbank habe ich in eine Variable gepackt und per MSGBOX anzeigen lassen: 0,0758 - passt
Aber mit der Übergabe an die Zelle passt der Wert dann nicht mehr:
Hat jemand eine Idee was dieses Verhalten hervorruft, wie ich den Wert 0,0758 auch als Wert für die Zelle übergeben bekommen?
Herzlichen Dank!
ich zapfe eine Datenbank an und bekomme einen Wert Einkaufspreis 0,0758.
Obwohl die Zelle mit 5 NKS im Frontend formatiert ist wird dort 0,08 eingetragen. Den Wert aus der Datenbank habe ich in eine Variable gepackt und per MSGBOX anzeigen lassen: 0,0758 - passt
Aber mit der Übergabe an die Zelle passt der Wert dann nicht mehr:
Daten.Cells(izaehler, 7).Value = rst.Fields("EK").Value
Hat jemand eine Idee was dieses Verhalten hervorruft, wie ich den Wert 0,0758 auch als Wert für die Zelle übergeben bekommen?
Herzlichen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 342508
Url: https://administrator.de/contentid/342508
Ausgedruckt am: 16.11.2024 um 03:11 Uhr
13 Kommentare
Neuester Kommentar
Das wird ein Ami anders sehen. Hast du das geprüft? Ich tippe nämlich auch auf dieses Problem.
Gruß
Gruß
Zitat von @Kraemer:
Das wird ein Ami anders sehen. Hast du das geprüft? Ich tippe nämlich auch auf dieses Problem.
Eben, in VBA muss man Dezimalzahlen im amerikanischen Format mit Punkt als Dezimaltrenner angeben. Deswegen den Wert vorher mit CDbl(wert) von einem String mit Komma in eine Dezimalzahl mit Punkt umwandeln und der Zelle zuweisen und Zellformat mit gewünschter Anzahl an Dezimalstellen richtig einstellen, dann klappt das auch wie gewünscht.Das wird ein Ami anders sehen. Hast du das geprüft? Ich tippe nämlich auch auf dieses Problem.
Beispiel:
Sub Test()
With ActiveSheet
' richtig
.Range("A1").Value = CDbl("10,234")
' falsch, wird im amerikanischen Format interpretiert und dort ist das Komma der Tausendertrenner
.Range("A2").Value = "10,234"
End With
End Sub
Gruß