Runden mit VBA vs. Rundungsfunktion in Excel

Bild

Betrifft: Runden mit VBA vs. Rundungsfunktion in Excel
von: Bernd S.
Geschrieben am: 14.02.2005 15:16:19
Hallo Spezialisten,
ich möchte Euro-Werte (Ganze Zahlen) in Tausend-Euro-Werte per VBA umrechnen. Dabei ergeben sich Rundungsprobleme. VBA rundet anders als die übliche Funktion "Runden(Zahl;Anzahl_Stellen)".
(Auszug aus dem Code)
...
For Each cell In Selection
cell.Value = Round(cell.Value, 0)
Next
...
VBA-Ergebnisse:
102.500 = 102 (falsch)
105.500 = 105 (korrekt)
110.500 = 110 (falsch)
Hat jemand einen Tipp ?
Danke und Gruß
Bernd

Bild

Betrifft: AW: Runden mit VBA vs. Rundungsfunktion in Excel
von: Ute
Geschrieben am: 14.02.2005 15:19:03
versuchs mal so:
For Each cell In Selection
cell.Value = application.Round(cell.Value, 0)
Next
Ute
Bild

Betrifft: AW: Runden mit VBA vs. Rundungsfunktion in Excel
von: Bernd S.
Geschrieben am: 14.02.2005 15:21:50
sorry, habe mich beim zweiten Ergebnis vertippt (VBA-Ergebnis = 106 bzw. korrekt)
Bild

Betrifft: AW: Runden mit VBA vs. Rundungsfunktion in Excel
von: Galenzo
Geschrieben am: 14.02.2005 15:25:04
[b1]=Worksheetfunction.Ceiling([a1],1000)
entspricht der Funktiono =OBERGRENZE(..
Bild

Betrifft: AW: Runden mit VBA vs. Rundungsfunktion in Excel
von: Bernd S.
Geschrieben am: 14.02.2005 15:57:54
Vielen Dank an euch für die schnellen Tipps.
Das Problem liegt darin, dass die VBA-Vorgabe mathematisch rundet und die Excel-Funktion kaufmännisch. Application.round rundet leider anders als die normale Excel-Funktion.
Ich hab jetzt aber eine Lösung gefunden (mir ist das mal im Rahmen der Euro-Umstellung über den Weg gelaufen):
Public

Function Round(ByVal Number As Double, ByVal digits As Integer) As Double
Round = Int(Number * 10 ^ digits + 0.5) / 10 ^ digits
End Function

dies im Modul vorangestellt und dann gehts.
Gruß
Bernd
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Runden mit VBA vs. Rundungsfunktion in Excel"