Clever-Excel-Forum

Normale Version: Eingabe auf null Dezimalstellen beschränken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

in diversen Excel-Dateien, welche von mehreren Personen genutzt werden, soll in einer Spalte die Eingabe auf null Dezimalstellen beschränkt werden.

Ich war hierzu auf folgenden Artikel gestoßen:
https://www.excel-inside.de/beispiele_vb...%C3%A4nken

Die dortige Beschreibung funktioniert einwandfrei. Ich musste lediglich die Formel von ^2 (für 2 Dezimalstellen) auf ^0 (für 0 Dezimalstellen) anpassen.

Jetzt bekommt man jedes Mal eine Fehlermeldung, wenn man Nachkommastellen einträgt. Sehr gut, dachte ich.

Problem: Manche Nutzer kopieren ganz gerne. Kopiert man jetzt einen Wert mit Nachkommastellen aus einer anderen Datei oder einer anderen Spalte in die betroffene Spalte, wird der Wert wiederum angenommen. Es gibt keine Fehlermeldung.

Die Formel funktioniert also nur beim direkten Eintragen, nicht beim Reinkopieren.

Gibt es hierfür eine Lösung?

Danke.
Hallo,

schau mal hier:

Kopieren und Einfügen unterbinden
(14.10.2022, 10:14)RM-J schrieb: [ -> ]Die Formel funktioniert also nur beim direkten Eintragen, nicht beim Reinkopieren.
Stimmt nicht ganz.
STRG-V überschreibt die Gültigkeitsprüfung. Die Regel ist dann fort.
Und die Gültigkeitsprüfung wird nur wirksam bei der Betätigung der ENTER-Taste oder eine der Pfeiltasten.
Hi,

ja das ist ein leidiges Thema bei der Datenüberprüfung. Mit Einfügen kann man doch wieder alles eingeben.

Wenn du die Eingabe von Nachkommastellen definitiv nicht zulassen willst, musst du mit VBA arbeiten.

Bsp. für Spalte A
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Intersect(Target, Range("A:A"))
If Not Bereich Is Nothing Then
    Application.EnableEvents = False
    For Each Zelle In Bereich
        If Not IsNumeric(Zelle) Or IsError(Zelle) Then
            Zelle.ClearContents
        Else
            If Zelle <> "" Then Zelle = CLng(Zelle)
        End If
    Next Zelle
    Application.EnableEvents = True
End If
End Sub
Hallo und guten Morgen,

ich würde auf die VBA-Lösung verzichten und stattdessen entweder einen Hinweistext anzeigen, wenn keine Ganzzahl angegeben wurde, oder noch einfacher, einfach nur mit dem Ganzzahligen Anteil weiterrechnen.

Code:
=Wenn(Ganzzahl(A2)=A2();"";"Bitte nur Ganzzahlen in A2 einfügen")

Viele Grüße
derHöpp