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

Forumthread: Prüfen, ob Zahl Nachkommastellen enthält

Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 07:01:02
Henry
Hallo liebes Forum,
ich benötige wieder einmal Eure Hilfe.
Ich möchte mit einem VBA Code überprüfen, ob die Zahl in einer Zelle Nachkommastellen enthält, oder nicht.
Ich habe im I-Net leider nicht die passende Lösung gefunden.
Es soll folgendes geprüft werden:
1. Fall: Zahl enthält keine Nachkommastellen
2. Fall: Zahl enthält eine Nachkommastelle
3. Fall: Zahl enthält zwei Nachkommastellen
Über eine Rückmeldung würde ich mich freuen.
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 07:21:47
Klaus
Hallo Henry,
prüf das doch per Formel!

=A1-ABRUNDEN(A1,1)=0
LG,
Klaus M.
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 07:23:09
Henry
Hallo Klaus,
vielen Dank für deine Rückmeldung.
Ich benötige das allerdings als VBA Code.
VG
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 07:26:45
Klaus
Hallo Henry,
danke für die Antwort - aber click immer auf "noch offen", damit noch weitere Antworten kommen - sonst verschwindet deine Frage ungelesen von anderen Helfern.
Du wirst in irgendeiner Tabelle doch eine freie Zelle haben. Schreib die Variablen da rein, schreib die Formel da rein und hol das Ergebniss wieder ins VBA. Einmal mit dem Makrorekorder drüber dann ist der Code fast fertig.
Es geht bestimmt auch in VBA direkt, aber ich mein immer warum soll ich kompliziert in VBA lösen was eine Formel viel schneller erledigt. Falls du das anders siehst, habe ich die Frage offen gelassen :-)
LG,
Klaus M.
Anzeige
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 07:28:28
Henry
Habe den Thread weiter offen gelassen.
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 09:07:10
Sigi.21
Hallo Klaus,
da musst du auch unterscheiden zwischen nur sichtbaren Nachkommastellen (gem. Formatierung) oder tatsächlich vorhandene Nachkommastellen (gem. Wert), aber das geht mit meiner VBA-Fkt. (s. Mappe)
Gruß Sigi
https://www.herber.de/bbs/user/148202.xlsm
Anzeige
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 08:06:54
Pierre
Hallo Henry,
möchtest du für jede Zelle eine MsgBox haben, in der die Anzahl der Nachkommas steht oder soll in einer Nachbarzelle einfach die Anzahl stehen?
Gruß Pierre
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 08:09:30
Henry
Hallo Pierre,
ich glaube wenn in der Nachbarzelle die Anzahl der Nachkommastellen steht, komme ich damit zurecht.
Ich passe den Code dann auf meine Bedürfnisse an.
VG
Anzeige
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 09:08:30
Pierre
Hallo Henry,
probier mal:

Option Explicit
Sub Nachkomma()
Dim i As Integer
Dim a As String
Dim str As String
For i = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
str = Worksheets("Tabelle1").Cells(i, 1)
a = Len(str) - InStr(str, ",")
If InStr(Cells(i, 1), ",") = 0 Then
Cells(i, 1).Offset(0, 1).Value = "0"
ElseIf a >= 1 Then
Cells(i, 1).Offset(0, 1).Value = a
End If
Next i
End Sub
Ich habe mir jetzt mal jegliche Kommentare gespart.
Gruß Pierre
Anzeige
Rückmeldung, Fehlanzeige ...
23.09.2021 14:14:24
Pierre
AW: Anzahl der Nachkommastellen
22.09.2021 09:36:12
GerdL
Moin

Sub Unit()
Dim C As Range
If TypeOf Selection Is Range Then
For Each C In Selection
If IsNumeric(C.Text) Then C.Offset(0, 1) = Application.Max(0, Len(C - CLng(C)) - 2)
Next
End If
End Sub
Gruß Gerd
AW: Prüfen, ob Zahl Nachkommastellen enthält
22.09.2021 10:16:52
Daniel
Hi
in VBA kannst du die Anzahl der Nachkommastellen eines Zellwertes so bestimmen:

worksheetfunction.Max(0, Len(Range("A1"))- len(int(range("A1"))) -1)
eine andere Möglichkeit wäre:

len(split(Range("A1") & ",", ",")(1))
allerdings musst du hier wissen, welches Dezimaltrennzeichen in deiner Länderversion verwendet wird und dies ggf anpassen, das erste ist unabhängig von der Länderversion.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nachkommastellen in Excel prüfen: So geht's


Schritt-für-Schritt-Anleitung

Um in Excel zu prüfen, ob eine Zahl in einer Zelle Nachkommastellen enthält, kannst du sowohl Formeln als auch VBA verwenden. Hier sind die Schritte für beide Methoden:

1. Mit einer Formel:

Du kannst die folgende Formel verwenden, um zu prüfen, ob eine Zahl in Zelle A1 Nachkommastellen enthält:

=A1-ABRUNDEN(A1,1)=0

Diese Formel gibt WAHR zurück, wenn die Zahl keine Nachkommastellen hat, und FALSCH, wenn sie Nachkommastellen enthält.

2. Mit VBA:

Wenn du VBA verwenden möchtest, kannst du einen Code wie diesen verwenden:

Sub Nachkomma()
    Dim i As Integer
    Dim a As String
    Dim str As String
    For i = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
        str = Worksheets("Tabelle1").Cells(i, 1)
        a = Len(str) - InStr(str, ",")
        If InStr(Cells(i, 1), ",") = 0 Then
            Cells(i, 1).Offset(0, 1).Value = "0"
        ElseIf a >= 1 Then
            Cells(i, 1).Offset(0, 1).Value = a
        End If
    Next i
End Sub

Dieser Code zählt die Nachkommastellen einer Zahl in der ersten Spalte und gibt die Anzahl in der benachbarten Zelle aus.


Häufige Fehler und Lösungen

Fehler 1: Die Formel gibt unerwartete Ergebnisse zurück.

Lösung: Stelle sicher, dass die Zahl in der Zelle als Zahl formatiert ist und nicht als Text. Du kannst die Formatierung überprüfen, indem du die Zelle auswählst und auf "Zellen formatieren" klickst.

Fehler 2: Der VBA-Code funktioniert nicht.

Lösung: Achte darauf, dass du den Code im richtigen Arbeitsblatt kontext ausführst. Der Code muss in einem Modul des entsprechenden Arbeitsblattes platziert werden.


Alternative Methoden

1. Excel VBA prüfen ob Zahl: Du kannst die WorksheetFunction verwenden, um Nachkommastellen zu ermitteln:

Dim nachkommastellen As Long
nachkommastellen = WorksheetFunction.Max(0, Len(Range("A1")) - Len(Int(Range("A1"))) - 1)

2. Komma Prüfung: Eine andere Möglichkeit besteht darin, den Split-Befehl zu verwenden:

Dim nachkommastellen As Long
nachkommastellen = Len(Split(Range("A1") & ",", ",")(1))

Vergiss nicht, das Dezimaltrennzeichen an deine Länderversion anzupassen.


Praktische Beispiele

Beispiel 1: Du hast eine Liste von Zahlen in Spalte A. Du möchtest die Anzahl der Nachkommastellen in Spalte B ausgeben. Verwende den VBA-Code aus der Schritt-für-Schritt-Anleitung, um dies zu erreichen.

Beispiel 2: Um die Kommasetzung zu überprüfen, kannst du die Formel für verschiedene Zellen anpassen und so auch die Formatierungen in Excel prüfen.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende die IsNumeric-Funktion, um sicherzustellen, dass die Zelle tatsächlich eine Zahl enthält, bevor du mit der Prüfung der Nachkommastellen beginnst.
  • Experimentiere mit verschiedenen Zellformatierungen, um die Auswirkungen auf die Nachkommastellen zu sehen.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Nachkommastellen für mehrere Zellen gleichzeitig prüfen? Du kannst eine Schleife im VBA-Code verwenden, um durch jede Zelle in einem Bereich zu iterieren und die Nachkommastellen zu zählen.

2. Was ist der Unterschied zwischen sichtbaren und tatsächlichen Nachkommastellen? Sichtbare Nachkommastellen beziehen sich auf die Formatierung der Zelle, während tatsächliche Nachkommastellen die Werte in der Zelle repräsentieren. Du kannst die Formatierung mit VBA oder den Zellformatierungsoptionen in Excel überprüfen.

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