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 ?!
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden