TDM Geschrieben 6. Februar 2006 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
Amstelchen Geschrieben 6. Februar 2006 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
TDM Geschrieben 6. Februar 2006 Autor 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
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.