ich habe ein kleines problem und zwar möchte ich in VBA code eine Zahl auf ganzstellige ziffern runden, dies geht mir round. nun möchte ich jedoch in jedemfalle auf die nächst höhere Zahl aufrunden sofern das resultat nicht genau eine Ganzzahl ist. hat einer ne idee wie ich das anstellen soll.
danke für deine Antwort, die idee aus der zahl einen Integerwert zumachen hatte ich auch schon, leider habe ich dann ein problem, nämlich wen der wert genau eine Ganzzahl ist, dann addiert er mir ebenfalls 1 dazu, womit ich schlussentlich 1 zuviel habe. Oder gibt es eine möglichkeit zu überprüfen ob ein Wert eine Ganzzahl ist ?
auf jedenfall nochmals danke für deine Antwort
mfg
christian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich habe in einer Abfrage folgendes eingetragen: Wenn(Int([betrag])=[betrag];[betrag];Int([betrag])+1)
und es funktioniert!
gruss
moritzbock
nimm die INT()-Funktion und addiere 1 dazu:
int(Zahl) + 1
INT rundet grundsätzlich ab. Wenn Du jetzt also noch 1
addierst, hast Du immer die nächstgrößere Ganzzahl…
Gruß
(Woly)
Hi Woly,
danke für deine Antwort, die idee aus der zahl einen
Integerwert zumachen hatte ich auch schon, leider habe ich
dann ein problem, nämlich wen der wert genau eine Ganzzahl
ist, dann addiert er mir ebenfalls 1 dazu, womit ich
schlussentlich 1 zuviel habe. Oder gibt es eine möglichkeit zu
überprüfen ob ein Wert eine Ganzzahl ist ?
Moritzbock hat die Lösung im Prinzip schon gepostet. Du kannst Dir aber auch gleich eine kleine Funktion basteln (oder nimm meinen Vorschlag und sie in ein Modul speichern.
Public Function NächsteGanzzahl(Wert As Double) As Long
If Int(Wert) = Wert Then
NächsteGanzzahl = Wert
Else
NächsteGanzzahl = Int(Wert) + 1
End If
End Function
Diese Funktion NächsteGanzzahl() steht Dir jetzt überall in der Datenbank zur Verfügung, egal ob in einer Abfrage oder im VBA-Code selbst.