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

Umwandeln Datum in Zahl verhindern

Forumthread: Umwandeln Datum in Zahl verhindern

Umwandeln Datum in Zahl verhindern
04.08.2003 14:01:01
Grill Andreas
Hallo,
ich habe eine Zelle, die als Zahl mit einer Kommastelle definiert ist.
Weiters überprüfe ich die Gültigkeit, ob die eingegebene Zahl auch max. 1 Kommastelle hat.
Soweit so gut, wenn ich allerdings ein Datum eingebe, wird diese in eine Zahl umgewandelt. Ich will aber, dass bei Eingabe eines Datums oder einer Zeit keine Umwandlung erfolgt, sondern eine Fehlermeldung ausgegeben wird.
Kann ich das irgendwie in der Gültigkeit machen, oder muss ich dazu extra ein Makro schreiben?
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umwandeln Datum in Zahl verhindern
04.08.2003 15:34:53
Boris
Hi Andreas,

grundsätzlich wäre das mit der Funktion ZELLE("Format";A1) denkbar - besser noch mit:
=LINKS(ZELLE("Format";A1))

Wenn A1 als Datum formatiert ist, dann ist das Ergebnis "D". In Kombination mit einer ISTZAHL-Überprüfung kann man so beispielsweise "Datümer" zählen.

ABER:
Du hast deine Zelle ja vorformatiert mit "Zahl und 1 Nachkommastelle".
Die Formel
=LINKS(ZELLE("Format";A1))
liefert somit "F".
Wenn man dort jetzt ein Datum eingibt, dann behält die Zelle leider ihr Format bei - und das Datum wird in seine zugehörige Zahl (mit ,0 am Ende) umformatiert.
Also scheidet diese Möglichkeit aus.

Mit VBA bin ich auch gescheitert, da die Abfrage
Msgbox IsDate([a1])
auch FALSCH liefert, wenn in A1 ein Datum eingegeben wird, da dieses Datum ja sofort in die Zahl umgewandelt wird und das ursprüngliche Zellformat bestehen bleibt.

Insofern:
Ich sehe leider KEINE Möglichkeit, diese Eingabe mit den bestehenden Formaten zu unterdrücken.
Aber zumindest siehst du, dass sich jemand mit deiner Anfrage befasst hat.

Grüße Boris


Anzeige
AW: Umwandeln Datum in Zahl verhindern
04.08.2003 15:42:07
Andreas
Hallo,

danke für deine Vemühungen. Mit VBA und dergleichen (Änderungen abfangen, bevor sie umgewandelt werden, etc.) habe ich auch keine Lösung gefunden.

Als einzige Alternative ist mir bis jetzt nur eingefallen, die Zellen als Text zu Formatieren, und den Text nach allen möglichen falschen Eingaben zu überprüfen (Istzahl, '.' im String, ':' in String, und was ich sonst noch finde)


Anzeige
Vielleicht doch eine Gültigkeitslösung:
04.08.2003 15:52:40
Boris
Hi Andreas,

bezogen auf A1 - Zellformat STANDARD.
Unter Gültigkeit-Benutzerdefiniert- folgende Formel:

=UND(ISTZAHL(A1);LINKS(ZELLE("Format";A1))<>"D";ODER(A1=GANZZAHL(A1);WENN(ISTZAHL(FINDEN(",";A1));LÄNGE(A1)-FINDEN(",";A1)=1)))

Erlaubt sind Ganzzahlen und Zahlen mit EINER Nachkommastelle - sonst nix. Datümer und Uhrzeiten werden "abgewiesen".

Probier´s mal aus und gib Bescheid, ob es nach Deinen Wünschen läuft.

Grüße Boris


Anzeige
AW: Vielleicht doch eine Gültigkeitslösung:
05.08.2003 10:23:15
Andreas Grill
hab's jetzt ausprobiert, das dürfte funktionieren, ich hoffe nur, die anwnder kommen nicht auf die rgendwelche ideen etwas einzugeben, dass damit nicht überprüft wird.
danke


Eine Gültigkeit ist niemals DAU-sicher...
05.08.2003 10:34:50
Boris
Hi Andreas,

...normale Eingaben sollten eigentlich ALLE abgewiesen werden - halt nur Ganzzahlen oder Zahlen mit einer Nachkommastelle bleiben / sind erlaubt.

Aber es gibt ja noch die "Killer-Befehle" Kopieren / Ausschneiden und wieder einfügen.
Davor ist kein Gültigkeitsfeld gefeit...

Also hau deinen Anwendern vorher mal kräftig auf die Finger...;-)

Grüße Boris


Anzeige
AW: Eine Gültigkeit ist niemals DAU-sicher...
05.08.2003 14:29:04
Grill Andreas
Hab' schon einen Schwachpunkt gefunden: Wenn man nun eine kortekte Zahl eingibt (z.b.: 3.444) änder sich das Format automatisch auf Zahl. Gibt man hier nun ein Datum ein, wird das auf das Format Zahl geändert, und die Prüfung merkt nichts davon.
anscheinend muss ich wirklich auf Format standard überprüfen.


Anzeige
Wenn du auf die Tausendertrennung verzichtest,...
05.08.2003 15:44:46
Boris
Hi Andreas,

...dann kann man das auch noch unterbinden:
=UND(ISTZAHL(A1);LINKS(ZELLE("Format";A1))<>"D";LINKS(ZELLE("Format";A1))<>".";ODER(A1=GANZZAHL(A1);WENN(ISTZAHL(FINDEN(",";A1));LÄNGE(A1)-FINDEN(",";A1)=1)))

100.000 wird dann aber als 100000 dargestellt.

Gruß Boris


Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel: Datum in Zahl umwandeln verhindern


Schritt-für-Schritt-Anleitung

Um zu verhindern, dass Excel ein Datum in eine Zahl umwandelt, kannst Du die folgenden Schritte befolgen:

  1. Zelle formatieren: Wähle die Zelle oder den Bereich aus, in dem Du Eingaben machen möchtest. Klicke mit der rechten Maustaste und wähle „Zellen formatieren“.
  2. Textformat wählen: Wähle im Reiter „Zahlen“ die Kategorie „Text“. Dadurch wird verhindert, dass Excel die Eingaben automatisch in Datumswerte umwandelt.
  3. Eingabevalidierung: Gehe zu „Daten“ > „Datenüberprüfung“. Wähle „Benutzerdefiniert“ aus und füge die folgende Formel ein:
    =UND(ISTZAHL(A1);LINKS(ZELLE("Format";A1))<>"D")

    Diese Formel stellt sicher, dass nur Zahlen erlaubt sind und Datumswerte abgelehnt werden.

  4. Fehlermeldung definieren: Im Tab „Fehlermeldung“ kannst Du eine eigene Nachricht hinzufügen, die angezeigt wird, wenn jemand versucht, ein Datum einzugeben.

Häufige Fehler und Lösungen

  • Datum wird in Zahl umgewandelt: Wenn Du ein Datum eingibst und es automatisch in eine Zahl umgewandelt wird, überprüfe, ob die Zelle als „Text“ formatiert ist. Wenn nicht, formatiere sie erneut.

  • Gültigkeit funktioniert nicht: Manchmal kann es vorkommen, dass die Datenüberprüfung nicht wie gewünscht funktioniert. Stelle sicher, dass Du die richtige Formel verwendest. Eine häufige Variante könnte sein:

    =UND(ISTZAHL(A1);LINKS(ZELLE("Format";A1))<>"D";ODER(A1=GANZZAHL(A1);WENN(ISTZAHL(FINDEN(",";A1));LÄNGE(A1)-FINDEN(",";A1)=1)))

Alternative Methoden

  • VBA-Makros: Du kannst auch ein VBA-Makro verwenden, um die Eingaben zu kontrollieren. Ein einfaches Beispiel könnte sein:

    Private Sub Worksheet_Change(ByVal Target As Range)
      If IsDate(Target.Value) Then
          MsgBox "Bitte kein Datum eingeben!"
          Application.EnableEvents = False
          Target.Value = ""
          Application.EnableEvents = True
      End If
    End Sub

    Dieses Makro gibt eine Fehlermeldung aus, wenn ein Datum eingegeben wird.

  • Formatierung als Text: Du kannst auch einfach die gesamte Spalte als Text formatieren, bevor Du Daten eingibst. So wird die automatische Umwandlung in ein Datum verhindert.


Praktische Beispiele

  • Beispiel 1: Du hast eine Zelle, die für die Eingabe von Preisen vorgesehen ist. Wenn jemand versucht, ein Datum einzugeben (z.B. 01.01.2023), wird dies abgelehnt, da die Zelle im Textformat ist.

  • Beispiel 2: Nutze die oben genannte Gültigkeitsformel, um sicherzustellen, dass nur Ganzzahlen und Zahlen mit maximal einer Nachkommastelle erlaubt sind. Dies verhindert effektiv, dass Excel das Datum in eine Zahl umwandelt.


Tipps für Profis

  • Datenüberprüfung kombinieren: Kombiniere die Datenüberprüfung mit benutzerdefinierten Fehlermeldungen, um die Benutzererfahrung zu verbessern.

  • Zellen schützen: Du kannst auch den Blattschutz aktivieren, um zu verhindern, dass Anwender die Zellenformatierung ändern.

  • VBA-Fehlermeldungen anpassen: Wenn Du VBA verwendest, passe die Fehlermeldungen an, um den Benutzern klare Anweisungen zu geben, was sie eingeben dürfen.


FAQ: Häufige Fragen

1. Wie kann ich verhindern, dass Excel in Datum umwandelt?
Formatiere die Zelle als Text und verwende Datenüberprüfung, um ungültige Eingaben abzulehnen.

2. Gibt es eine Möglichkeit, dass Excel nicht in Datum umwandelt?
Ja, durch die Verwendung von Textformat und entsprechenden Gültigkeitsregeln kannst Du die automatische Umwandlung verhindern.

3. Wie kann ich Datumswerte abweisen?
Nutze die Gültigkeitsformel, um sicherzustellen, dass nur Zahlen erlaubt sind und Datumswerte abgelehnt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige