Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: "REST" in VBA

"REST" in VBA
11.02.2015 11:36:59
Franz
Hallo Fachleute,
ich habe zwei Formeln, die ich in VBA brauche:
=(REST(I8;10)=0)
und
=(REST(I8+1;10)=0)
Ich bitte um Eure Hilfe: wie muss ich diese als VBA-Abfragen schreiben?
Danke schonmal und Grüße
Franz

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "REST" in VBA
11.02.2015 11:42:08
Michael
Hallo Franz!
Das Äquivalent zur Rest-Zellfunktion ist in VBA "Mod" (Modulo), also zB so:
Sub ModRest()
Debug.Print Tabelle1.Cells(18, 9).Value Mod 10
Debug.Print Tabelle1.Cells(18, 9).Value + 10 Mod 10
End Sub
LG
Michael

Michael, vielen Dank! o.t.
11.02.2015 11:51:44
Franz
...

Anzeige
Danke für die Rückmeldung owT
11.02.2015 12:16:54
Michael
LG
Michael

AW: "REST" in VBA
11.02.2015 11:47:41
fcs
Hallo Franz,
so etwas in der folgenden Art?
A = Range("I18") Mod 10 = 0
B = (Range("I18") +1) Mod 10 = 0

oder willst du die Formeln selber irgendwo in einer Zelle eintragen?
Gruß
Franz

AW: "REST" in VBA
11.02.2015 11:56:20
Franz
Hallo Franz,
auch Dir vielen Dank! Nein, ich suche hier schon die VBA-Schreibweise.
(Eine Formel per VBA einzusetzen hab ich mir schon mal erschlossen, zuerst mir Rekorder, dann anpassen mir RC-Schreibweise.......... aber danke für das Angebot)
Grüße
Franz

Anzeige
In VBA ist 'Mod' ein Operator, keine Fkt, was ...
11.02.2015 12:42:04
Luc:-?
…du beachten musst, Franz (W.);
außerdem rechnet die VBA-Operation bei negativen Werten anders als die xlFkt REST (nach meiner Auffassung richtiger, wie einst in der Schule gelernt).
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: In VBA ist 'Mod' ein Operator, keine Fkt, was ...
11.02.2015 14:00:30
Franz
Hallo Luc,
danke, ich beachte ......... aber ich erkenne nicht, was das für einen Unterschied bedeutet. Bitte um Nachhilfe
Grüße
Franz

Na, dann probiere beides mal mit EINem -Wert! owT
11.02.2015 14:55:38
Luc:-?
:-?

...bspw so:
11.02.2015 15:06:09
Luc:-?

  X   Y REST(X;Y) X Mod Y
5   3     2        2
-5   3     1       -2
5  -3    -1        2
-5  -3    -2       -2
Luc :-?

Anzeige
AW: ...bspw so:
11.02.2015 15:17:33
Franz
Hallo Luc,
ja, hab's auch ausprobiert, das macht den Unterschied.
Danke und Grüße
Franz
;
Anzeige

Infobox / Tutorial

REST in VBA: So nutzt du die Mod-Funktion


Schritt-für-Schritt-Anleitung

Um die REST-Funktion in Excel VBA zu verwenden, nutzt du den Operator Mod. Hier ist eine einfache Schritt-für-Schritt-Anleitung, wie du das machst:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub ModRest()
       Dim Wert As Integer
       Wert = Tabelle1.Cells(18, 9).Value  ' Zelle I18 als Beispiel
       Debug.Print Wert Mod 10  ' Ausgabe des Restes
       Debug.Print (Wert + 1) Mod 10  ' Ausgabe des Restes nach Addition
    End Sub
  4. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen. Der Rest der Division wird im Direktfenster angezeigt.

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Lösung: Achte darauf, dass alle Variablen mit dem richtigen Datentyp deklariert sind.
  • Fehler: Negative Werte geben unerwartete Ergebnisse

    • Lösung: Beachte, dass VBA bei negativen Zahlen anders rechnet als die Excel-Funktion REST. Verwende die Mod-Funktion, um korrekte Ergebnisse zu erhalten.

Alternative Methoden

Wenn du den REST in Excel ohne VBA berechnen möchtest, kannst du die Excel-Funktion REST oder die MOD-Funktion verwenden:

  • Mit REST:

    =REST(I8;10)
  • Mit MOD:

    =MOD(I8;10)

Beide Funktionen geben den Rest der Division zurück und können direkt in einer Zelle verwendet werden.


Praktische Beispiele

Hier sind einige Beispiele, wie die VBA REST-Funktion in verschiedenen Szenarien genutzt werden kann:

  1. Einfaches Beispiel:

    Sub Beispiel()
       Dim Ergebnis As Integer
       Ergebnis = 27 Mod 4  ' Ergebnis ist 3
       Debug.Print Ergebnis
    End Sub
  2. Mit einer Schleife:

    Sub Schleife()
       Dim i As Integer
       For i = 1 To 20
           If i Mod 3 = 0 Then
               Debug.Print i & " ist durch 3 teilbar."
           End If
       Next i
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Stelle sicher, dass du Option Explicit am Anfang deines Moduls verwendest, um Fehler durch nicht deklarierte Variablen zu vermeiden.

  • Debugging: Nutze Debug.Print, um während der Entwicklung den Wert von Variablen anzuzeigen und zu überprüfen, ob die Berechnungen korrekt sind.

  • Negative Werte: Sei dir bewusst, dass das Verhalten von Mod bei negativen Werten von der Excel-Funktion REST abweicht. Teste beide Funktionen bei negativen Zahlen, um sicherzustellen, dass du die gewünschten Ergebnisse erhältst.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen REST und Mod in VBA?
REST gibt den Rest einer Division zurück, während Mod in VBA als Operator fungiert, um denselben Wert zu berechnen.

2. Wie kann ich den Rest einer Division in einer Excel-Zelle anzeigen?
Du kannst die MOD-Funktion in einer Zelle verwenden, z.B.: =MOD(I8;10).

3. Funktioniert die Mod-Funktion in allen Excel-Versionen?
Ja, die Mod-Funktion ist in allen modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und 2019.

4. Gibt es eine Möglichkeit, eine ganze Zahl in VBA mit Rest zu dividieren?
Ja, du kannst die Mod-Funktion verwenden, um den Rest einer ganzzahligen Division zu erhalten, z.B. x Mod y.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige