wie kann mann eigentlich mit VBA der n i c h t ganzzahligen Rest einer
Division ermitteln? Mit Mod erhält man ja den ganzzahligen Rest.
Danke schon mal und Gruß
Jochen
Sub test()
a = 5
b = 3
x = a / b - Int(a / b)
MsgBox x
End Sub
Um den Rest einer Division in Excel VBA zu ermitteln, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen:
Öffne den VBA-Editor:
ALT + F11, um den VBA-Editor in Excel zu öffnen.Füge ein neues Modul hinzu:
Einfügen und wähle Modul.Gib den folgenden Code ein:
Sub DivisionMitRest()
Dim a As Double
Dim b As Double
Dim ganzzahlig As Double
Dim rest As Double
a = 5
b = 3
ganzzahlig = Int(a / b) ' Ganzzahlige Division
rest = a - (ganzzahlig * b) ' Rest berechnen
MsgBox "Der Rest der Division von " & a & " durch " & b & " ist: " & rest
End Sub
Führe das Skript aus:
F5, um das Skript auszuführen und den Rest anzuzeigen.Das Skript verwendet die ganzzahlige Division und berechnet den Rest, indem es den ganzzahligen Teil von a durch b abzieht.
Fehler: Der Code gibt den Nachkommanteil statt den Rest aus.
rest = a - (ganzzahlig * b) verwendest.Fehler: Division durch Null.
b gleich Null ist, bevor Du die Division durchführst:
If b = 0 Then
MsgBox "Division durch Null ist nicht erlaubt!"
Exit Sub
End IfEine alternative Methode zur Berechnung des Rests in VBA ist die Verwendung der Mod-Funktion. Diese gibt den ganzzahligen Rest einer Division zurück. Beispiel:
Sub ModDivision()
Dim a As Integer
Dim b As Integer
a = 5
b = 3
MsgBox "Der ganzzahlige Rest von " & a & " durch " & b & " ist: " & a Mod b
End Sub
Wenn Du jedoch den nicht ganzzahligen Rest benötigst, solltest Du die oben beschriebene Methode verwenden.
Beispiel mit Gleitkommazahlen:
Sub GleitkommaDivision()
Dim a As Double
Dim b As Double
a = 123.668
b = 1.45
MsgBox "Der Rest der Division ist: " & a - (Int(a / b) * b)
End Sub
Beispiel für eine wiederverwendbare Funktion:
Function DivisionMitRest(a As Double, b As Double) As Double
If b = 0 Then
DivisionMitRest = CVErr(xlErrDiv0) ' Fehler für Division durch Null
Else
DivisionMitRest = a - (Int(a / b) * b)
End If
End Function
Application.Ceiling-Funktion, um sicherzustellen, dass Du den richtigen Wert für die Division erhältst, falls Du mit größeren Zahlen arbeitest.Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert werden.1. Wie kann ich die Division ohne Rest in VBA durchführen?
Um die Division ohne Rest durchzuführen, kannst Du einfach den ganzzahligen Divisionsoperator \ verwenden:
Dim result As Integer
result = a \ b
2. Gibt es eine eingebaute Funktion für die Division mit Rest in Excel? In Excel gibt es keine direkte Funktion dafür, aber Du kannst die oben genannten Methoden in VBA verwenden, um dies zu erreichen.