Discussion:
VBA - runden von Zahlenwerten & "mod"-Funktion
(zu alt für eine Antwort)
Jimmy
2005-11-29 15:27:06 UTC
Permalink
Hi,

wie kann ich in VBA Zahlenwerte runden?
Also bspw. 51,28 soll auf 51 gerundet werden.
51,6 aber auf 52 gerundet.

2.Frage:

wie stelle ich fest, wie oft ein Wert in einen anderen reingeht.
Also bspw. wie oft 51,28 in 500 reingeht.

Es gibt zwar die "mod"-Funktion, aber die liefert ja den Rest.
Und außerdem wird dabei automatisch die Fließkommazahl gerundet, in diesem
Fall wird 51,28 zu 51.

500 mod 51,28 liefert also das Ergebnis 41!!!!
Was natürlich verfälscht ist.

Für jeden Tipp dankbar
Gruß
Eberhard Funke
2005-11-29 15:45:25 UTC
Permalink
Am Tue, 29 Nov 2005 16:27:06 +0100 schrieb Jimmy:

Hallo Jimmy,
Post by Jimmy
wie kann ich in VBA Zahlenwerte runden?
Also bspw. 51,28 soll auf 51 gerundet werden.
51,6 aber auf 52 gerundet.
mit der Round-Funktion (s. Hilfe)
Post by Jimmy
wie stelle ich fest, wie oft ein Wert in einen anderen reingeht.
Also bspw. wie oft 51,28 in 500 reingeht.
Int(500(51.28)
--
Gruß Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
klaus.schmitz
2005-11-30 00:52:30 UTC
Permalink
Hallo Jummy und Eberhard,

hier Beispiele zum ausprobieren.

Den kleinen Tippfehler von Eberhard
habe ich auch gleich entsogt.


Zuerst den Wert in Zelle
A5 eingeben, z. B. 51,28
und dann den Makro laufen lassen.

Sub RundeZahl()

Range("C5").Value = Round(Range("A5").Value)
Range("C6").Value = Round(Int(Range("A5").Value * 100) / 100, 2)
Range("C7").Value = Round(12.3456, 2)
Range("C8").Value = Round(Range("A5").Value, 2)
Range("C9").FormulaLocal = "=Runden(A5;2)"
Range("C10").Value = Int(500 / Range("A5").Value)

End Sub

MfG
Klaus

Loading...