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

Feststellen ob zahl integer (Ganze Zahl) ist

Forumthread: Feststellen ob zahl integer (Ganze Zahl) ist

Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 11:32:18
volker
Hallo Leute,
weiss jemand, ob man mit VBA für EXCEL feststellen kann welcher Zahlen Typ ein Ergebnis ist?
Konkret will ich beliebige Zahlen durch 4 teilen und nur die Ergebnisse behalten, die Ganze Zahlen sind. Im Ergebnis soll also keine Kommazahl zugelassen sein.

Vielen Dank

Volker

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 11:34:53
L.Vira

Zahl = Int(12.2345)
oder ggf. Round(Zahl,0)
VarType(Zahl)


Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 11:59:29
Volker

Vielen Dank!
Nur leider: wahr nix!
Mit Round runde ich ja die Nachkommastellen weg. Bringt also nichts.
Und VarType gibt mir eine Zahl wieder, deren Bedeutung ich nicht kenne, aber den Anschein hat nicht wirklich Information über die Ganzzahligkeit einer Zahl zu liefern.
Int(12.2345), liefert lediglich den ganzzahligen Anteil einer Zahl.
Nochmals: Ich will nur die Ergebnisse einer Division behalten, die ganzzahlige Ergebnisse liefern!

Volker

Anzeige
Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 12:06:10
L.Vira

"Und VarType gibt mir eine Zahl wieder, deren Bedeutung ich nicht kenne, aber den Anschein hat nicht wirklich Information über die Ganzzahligkeit einer Zahl zu liefern."

Da nutzt schon mal ein Blick in die Hilfe!

Mach eine Abfrage in der Art:

If vartype(deineZahl)= 2 Then
Rechneweiter
else
mach_was_anderes
End if

Anzeige
Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 12:24:42
volker

Hallo,
weiterhin vielen Dank und war nix!
VarType(meineZahl) ist bei mir immer 5, d.h. vom Typ Double.
Da muss noch eine andere Lösung zu finden sein.
Bei C++ gibt es eine Funktion "modulo", die das elegant macht.
Und bei VBA?

Volker

Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 12:33:09
L.Vira

Am besten, du lieferst mal ein konkretes Berechnungsbeispiel.

Anzeige
Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 12:39:07
ingo

Hallo Volker,

die mod funktion gibts auch in Excel ( =Rest(parm1;parm2))

Du kannst aber einfach abfragen, if int(var1)=var1 then

zB

Public Function gz(var1 As Double) As Boolean
Application.Volatile
gz = False
If Int(var1) = var1 Then gz = True
End Function

Gruß Ingo

Anzeige
Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 12:41:39
ingo

Hallo Volker,

die mod funktion gibts auch in Excel ( =Rest(parm1;parm2))

Du kannst aber einfach abfragen, if int(var1)=var1 then

zB

Public Function gz(var1 As Double) As Boolean
Application.Volatile
gz = False
If Int(var1) = var1 Then gz = True
End Function

Gruß Ingo

Anzeige
Re: Feststellen ob zahl integer (Ganze Zahl) ist
24.06.2003 14:15:40
volker

Danke Ingo!
Das ist die lösung gewesen!
Ein Hoch auf Dich aus Leipzig!

Volker

Schema
24.06.2003 19:11:39
L.Vira

Option Explicit
Sub test()
Dim Divident As Double, Divisor As Long
Divident = 100
For Divisor = 1 To 100
Cells(Divisor, 1) = Divident
Cells(Divisor, 2) = Divisor
If Divident Mod Divisor = 0 Then
Cells(Divisor, 3) = Divident / Divisor
End If
Next
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Feststellen ob Zahl Integer (Ganze Zahl) ist


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA zu prüfen, ob eine Zahl eine ganze Zahl ist, kannst Du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Public Function istGanzzahl(zahl As Double) As Boolean
        istGanzzahl = (Int(zahl) = zahl)
    End Function
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Jetzt kannst Du die Funktion istGanzzahl in einer Zelle verwenden, um zu prüfen, ob eine Zahl eine ganze Zahl ist. Zum Beispiel: =istGanzzahl(A1).


Häufige Fehler und Lösungen

  • Problem: Die Funktion gibt FALSCH zurück, obwohl eine ganze Zahl eingegeben wurde.

    • Lösung: Stelle sicher, dass die Zahl im richtigen Format eingegeben wurde. Manchmal kann eine Zahl als Text interpretiert werden. Verwende WERT(A1), um sicherzustellen, dass die Eingabe als Zahl erkannt wird.
  • Problem: Der Code läuft nicht ohne Fehler.

    • Lösung: Überprüfe, ob Du die korrekte Syntax verwendest und die Funktion ordnungsgemäß im Modul platziert ist.

Alternative Methoden

Eine weitere Methode zur Erkennung von ganzen Zahlen in Excel ist die Verwendung der REST-Funktion. Hier ein Beispiel:

=REST(A1, 1) = 0

Diese Formel prüft, ob der Rest einer Division durch 1 gleich 0 ist, was bedeutet, dass es sich um eine ganze Zahl handelt.

Du kannst auch eine VBA-Funktion zur ganzzahligen Division erstellen:

Public Function ganzzahligDivision(divident As Double, divisor As Double) As Double
    If divisor <> 0 Then
        ganzzahligDivision = Int(divident / divisor)
    Else
        ganzzahligDivision = CVErr(xlErrDiv0) ' Division durch Null
    End If
End Function

Praktische Beispiele

Hier sind einige praktische Anwendungen, um zu prüfen, ob eine Zahl eine ganze Zahl ist:

  1. Zahlen überprüfen: Verwende die Funktion istGanzzahl, um mehrere Werte in einer Spalte zu überprüfen, z.B. in den Zellen A1 bis A10. Füge die Formel =istGanzzahl(A1) in Zelle B1 ein und ziehe die Ecke der Zelle nach unten, um die Formel auf die anderen Zellen anzuwenden.

  2. Ganze Zahlen in einer Schleife filtern: In VBA kannst Du auch eine Schleife verwenden, um nur die ganzzahligen Ergebnisse einer Division zu filtern:

    Sub FilterGanzeZahlen()
        Dim Divident As Double, Divisor As Long
        Divident = 100
        For Divisor = 1 To 100
            If Divident Mod Divisor = 0 Then
                ' Hier kannst Du die Division durchführen und das Ergebnis in eine Zelle schreiben
            End If
        Next Divisor
    End Sub

Tipps für Profis

  • Nutze die Application.Volatile-Anweisung in Deinen VBA-Funktionen, um sicherzustellen, dass Excel die Funktion bei jeder Berechnung erneut ausführt.
  • Wenn Du häufig mit großen Datenmengen arbeitest, kannst Du die Leistung optimieren, indem Du Deine Funktionen so schreibst, dass sie nur notwendige Berechnungen durchführen.
  • Experimentiere mit der TypeName-Funktion, um den Datentyp einer Variablen zu überprüfen und sicherzustellen, dass Du mit dem richtigen Typ arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich in Excel prüfen, ob eine Zahl eine ganze Zahl ist?
Du kannst eine benutzerdefinierte VBA-Funktion wie istGanzzahl verwenden, um dies zu überprüfen.

2. Was mache ich, wenn ich mit einer Division arbeite und nur ganzzahlige Ergebnisse benötige?
Verwende die MOD-Funktion in Kombination mit einer Bedingung, um nur die ganzzahligen Ergebnisse zu behalten. Zum Beispiel =WENN(REST(A1;B1)=0;A1/B1;"Kein ganzzahliges Ergebnis").

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige