2k Aufrufe
Gefragt in Tabellenkalkulation von andreas_3 Mitglied (109 Punkte)
Hallo zusammen

ich bräuchte mal wieder Hilfe...

ich hab eine Userform angelegt, in die durch ein Makro Werte aus einer Excel-Tabelle angezeigt werden.

NettingMaske.Beispiel.Value = CDec(Range("M1"))

Funktioniert alles soweit, nur werden Beträge nur mit den Kommastellen angezeigt, die nicht "0" sind, also z.B.
420,00 EUR mit 420
420,10 EUR mit 420,1
429,01 EUR mit 420,01

sieht halt dadurch etwas unübersichtlich und unfreundlich aus.. kann man das irgendwie ändern, dass nach Wunsch immer 1, 2 oder 3 Nachkommastellen angezeigt werden?

Besten Dank und ein schönes Wochenende

Gruß
Andreas

6 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Andreas,

falls so wie in der Zelle?
=Range("M1").Text

Gruß Hajo
0 Punkte
Beantwortet von andreas_3 Mitglied (109 Punkte)
Hallo Hajo,

ja, so hatte ich es ursprünglich, aber (sorry, habe ich nicht erwähnt), die Zahl muß nachher mit dem nächsten Makro wieder zurück in die Excel-Tabelle, eventuell ändert sie der User aber auch ab, und dann funktioniert das irgendwie nicht mit den Kommastellen...

gibt's nich eine andere Idee?

LG
Andreas
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Andreas,

Dir ist schon klar das eine Textbox Text enthält Du liest eine Zahl aus und schreibst Text zurück.
Da mußt Du beim zurückschreiben eine Umwandlungsfunktion benutzen z.B. CDbl(), falls Du damit rechnen willst.

Gruß hajo
0 Punkte
Beantwortet von
Hallo Andreas,

mit A8 = 420, A9 = 420,1, A10 = 420,01

Sub Test2()
Dim i As Integer
For i = 8 To 10
MsgBox "A" & CStr(i) & " = " & Format(ActiveSheet.Range("A" & CStr(i)), "0.00")
Next i
End Sub


MfG Charlotte
0 Punkte
Beantwortet von
Hallo Andreas,

kleine Erweiterung: nach Rückkonvertierung durch CDbl(s) lässt sich damit auch problemlos weiterrechnen.

Sub Test3()
Dim i As Integer, s As String
For i = 8 To 10
MsgBox "A" & CStr(i) & " = " & Format(ActiveSheet.Range("A" & CStr(i)), "0.00")
s = Format(ActiveSheet.Range("A" & CStr(i)), "0.00")
ActiveSheet.Range("B" & CStr(i)) = CDbl(s) + 100.9
Next i
End Sub
MfG Charlotte
0 Punkte
Beantwortet von andreas_3 Mitglied (109 Punkte)
... da muß ich mich mal reinvertiefen....
bin nur leider nächste Woche nicht da, ich werd also "irgendwann" mal drauf zurückkommen müssen.
Aber danke schon mal für die Ansätze und schönes Wochenende

LG
Andreas
...