Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Rest einer Division VBA

Forumthread: Rest einer Division VBA

Rest einer Division VBA
16.12.2003 22:34:36
Jochen
Hallo Leute,

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
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rest einer Division VBA
16.12.2003 22:41:58
Reinhard
Hi Jochen,


Sub test()
a = 5
b = 3
x = a / b - Int(a / b)
MsgBox x
End Sub


Gruß
Reinhard
Danke, peinlich, das hätte ich auch
16.12.2003 23:37:08
Jochen
selber rausfinden müssen.

Gruß Jochen
Halt, stimmt ja nicht....
17.12.2003 02:20:25
Jochen
hoppla,

5/3 ergibt 1 Rest 2

Dein Code ergibt den Nachkommaanteil.
Habs aber inzwischen mithilfe von application.ceiling gelöst.

Gruß Jochen
Anzeige
AW: Halt, stimmt ja nicht....
17.12.2003 04:24:37
Reinhard
Hallo Jochen,
was ist denn der Unterschied zwischen
dem nicht ganzzahligen Rest einer Division und den Nachkommastellen?
Und ceiling=Obergrenze ist doch nur eine Rundungsfunktion.
Gruß
Reinhard
AW: Halt, stimmt ja nicht....
17.12.2003 08:30:30
Jochen
Hallo,

rechne mal 123,668/1,45 nach deinem Vorschlag, da kommt 0,288275862
raus. Richtig ist aber 0,418

Gruß Jochen
Anzeige
;
Anzeige

Infobox / Tutorial

Rest einer Division in VBA ermitteln


Schritt-für-Schritt-Anleitung

Um den Rest einer Division in Excel VBA zu ermitteln, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. 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
  4. Führe das Skript aus:

    • Drücke 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.


Häufige Fehler und Lösungen

  • Fehler: Der Code gibt den Nachkommanteil statt den Rest aus.

    • Lösung: Stelle sicher, dass Du den Rest korrekt berechnest, indem Du die Formel rest = a - (ganzzahlig * b) verwendest.
  • Fehler: Division durch Null.

    • Lösung: Überprüfe, ob b gleich Null ist, bevor Du die Division durchführst:
      If b = 0 Then
      MsgBox "Division durch Null ist nicht erlaubt!"
      Exit Sub
      End If

Alternative Methoden

Eine 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.


Praktische Beispiele

  1. 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
  2. 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

Tipps für Profis

  • Verwende die Application.Ceiling-Funktion, um sicherzustellen, dass Du den richtigen Wert für die Division erhältst, falls Du mit größeren Zahlen arbeitest.
  • Teste Deine Funktionen gründlich mit verschiedenen Datentypen (Integer, Double), um sicherzustellen, dass sie robust sind und keine Fehler auslösen.
  • Nutze Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert werden.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige