TDM Geschrieben 6. Februar 2006 Teilen Geschrieben 6. Februar 2006 Hallo, Ich möchte Werte aus einer Tabelle auslesen und diese dann getrennt (nach vollen Euros und Cent) in 2 Zellen schreiben jetzt hab ich aber das Problem, dass wenn ich eine 1 dezimalstellige Zahl in meiner Variable habe, immer das Komma mitgeschrieben wird... Dim dGes As Double dGes = Format(dGes, "###0.00") .Tables(2).Cell(7, 2).Select Selection.Text = CStr(CInt(dGes)) .Tables(2).Cell(7, 4).Select Selection.Text = Right(CStr(dGes), 2) Warum geht das nicht ?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 6. Februar 2006 Teilen Geschrieben 6. Februar 2006 Right(CStr(dGes), 2) du wandelst den zellinhalt in string um und nimmst immer die letzten zwei stellen, klar dass da bei werten mit einer, drei oder mehr nachkommastellen der falsche wert rauskommt. versuchs mal mit Mid(CStr(Round(dGes- Fix(dGes), 3)), 3,2) s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 6. Februar 2006 Autor Teilen Geschrieben 6. Februar 2006 nein, dGes ist das Ges-amte Endergebnis (double) Da werden auch die Daten korrekt eingetragen - nur hatte der wahrscheinlich Probleme, weil die zweite Kommastelle eine 0 ist. Hab das mit debuggen probiert - da kam, dass dGes 100,5 wäre - Format(dGes, "###0.00") hatte "100,50" zurückgeliefert aber danach war es immernoch 100,5 O.o hab das jetzt so gemacht: .Tables(2).Cell(7, 2).Select Selection.Text = CStr(CInt(dGes)) .Tables(2).Cell(7, 4).Select Selection.Text = Right(CStr(Format(dGes, "###0.00")), 2) geht trotzdem *g* aber deine Lösung merk ich mir mal Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.