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

Datumsformat falsch "korrigiert"

Forumthread: Datumsformat falsch "korrigiert"

Datumsformat falsch "korrigiert"
10.05.2019 16:10:54
Mario
Liebe Forumsmitglieder
zuallererst folgendes: ich habe bescheidene VBA-Kenntnisse, obwohl ich schon ziemlich viel gemacht habe. Es geht halt immer irgendwie über probieren und forenbeiträge... Nun stehe ich aber wirklich an (trotz langer Suche).
Es geht um folgendes: man muss im UF das Datum eingeben in die Textbox mit Namen "datumabrechnung". Damit es einfacher geht, habe ich zusätzlich zwei Optionsfelder für das heutige und gestrige Datum eingefügt ("optionheute" und "optiongestern"). Die Optionsfelder werden - falls aktiviert - bei der Eingabe in die Textbox abgeschaltet. Nun möchte ich abfragen, ob das Datum richtig eingegeben wurde, soweit so einfach.
Mit diesem Code frage ich die Richtigkeit ab:
If optiongestern.Value = False And optionheute.Value = False Then
If Trim(datumabrechnung) = "" Then
MsgBox ("Sie müssen ein Datum eingeben!")
Exit Sub
ElseIf isdate(datumabrechnung.Value) = False Then
MsgBox ("Sie haben ein falsches Datum eingegeben!")
Exit Sub
End If
End If
Funktioniert hervorragend z.B. für 99.99.99.Wenn man aber z.B. eingibt "31.2.19" wandelt Excel das Datum automatisch um in den 19.02.1931. Ich dachte, durch Ändern in
If optiongestern.Value = False And optionheute.Value = False Then
datumabrechnung.Text = Format$(datumabrechnung.Text, "dd.mm.yyyy")
If Trim(datumabrechnung) = "" Then
MsgBox ("Sie müssen ein Datum eingeben!")
Exit Sub
ElseIf isdate(datumabrechnung.Value) = False Then
MsgBox ("Sie haben ein falsches Datum eingegeben!")
Exit Sub
End If
End If
könne ich das Datum zuerst in ein falsches umwandeln, welches dann richtigerweise als falsch herausgegeben wird Das hat jedoch nicht funktioniert.
Was mache ich falsch?!?!
jetzt schon mal 1000 Dank für die Hilfe...!!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsformat falsch "korrigiert"
10.05.2019 17:31:56
Hajo_zi
zu Datum siehe Dir mal das an
http://hajo-excel.de/gepackt/vba/userform_zeit_datum.zip

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Datumsformat falsch "korrigiert"
11.05.2019 08:23:46
Mario
Lieber Hajo
vielen Dank für die Antwort und das "Testfile"... .
Ist lustig, wie Excel die Daten nach Lust und Laune verändert. Wenn ich in Deinem File als Datum den 31.2.19 eingebe, dann macht Excel den 3.3.19 draus...!!
Ich hab's jetzt so gelöst, dass eine msgbox mit vbyesno kommt, wo man das geänderte Datum annehmen oder nochmal ändern kann...
ganz liebe Grüsse!
Mario
Anzeige
Das ist nicht "lustig", sondern …
11.05.2019 08:59:49
RPP63
… logisch, Mario!
Schließlich ist für Excel ein Datum eine serielle Zahl.
Du kannst z.B. sehr einfach den 160sten Tag dieses Jahres ermitteln:
=DATUM(2019;1;160) ergibt den 9.6.19
Gruß Ralf
AW: Das ist nicht "lustig", sondern …
13.05.2019 10:20:22
Mario
Lieber Ralf
ich sehe den Punkt...! macht irgendwie auch Sinn.
Die Frage stellt sich mir nur, wie kann man "Verschreiber" beim Datum überprüfen? wenn jemand also den 31.1.19 eingeben will, sich vertippt und als Datum "31.2.19" eingibt. Im einen Fall (ohne Veränderung) macht er den 19.2.1931 draus, im anderen Fall den 3.3.2019... :-(
beste Grüsse!
Mario
Anzeige
AW: Datumsformat falsch "korrigiert"
11.05.2019 09:46:40
Hajo_zi
Hallo Mario,
Bei mir gibt es im Monat Februar keinen 31 Tag.
Ich bin jetzt beim Forumstreffen bis Mittwoch.
Danach baue Ich Prüfung Datum noch ein.
https://www.herber.de/forum/messages/1569912.html
Upload geändert ot
13.05.2019 08:39:39
Hajo_zi
AW: Datumsformat falsch "korrigiert"
13.05.2019 10:43:58
Daniel
Hi
wird schwierig.
wenn du ganz sicher gehen willst, machst du 3 Comboboxen für Jahr, Monat und Tag (am besten auch in dieser Reihenfolge) und setzt das Datum dann aus diesen Eingaben zusammen.
nach Auswahl des Monats kannst du ja die Auswahlmöglichkeiten für die Combobox Tag entsprechend anpassen.
bzw du kannst prüfen, ob der ausgewählte Tag zum ausgewählten Monat passt.
ansonsten könntest du ja prüfen, ob im erzeugten Datum das Jahr im passenden Bereich liegt, dh alles wo das Jahr kleiner ist als 2018 oder so muss eine Falscheingabe sein.
Gruß Daniel
Anzeige
AW: Datumsformat falsch "korrigiert"
13.05.2019 10:53:02
Mario
Lieber Daniel
Das mit den drei Comboboxen finde ich zu holprig, aber die Idee, nur Jahre grösser als 2018 zuzulassen, finde ich super...
Vielen Dank und liebe Grüsse!
Mario
;
Anzeige
Anzeige

Infobox / Tutorial

Datumsformat in Excel korrekt überprüfen


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Arbeitsmappe und gehe zu dem Arbeitsblatt, in dem du das Datum überprüfen möchtest.
  2. Füge ein Benutzerformular hinzu:
    • Gehe zum VBA-Editor (Alt + F11).
    • Klicke mit der rechten Maustaste auf dein Projekt > Einfügen > Benutzerformular.
  3. Füge eine Textbox mit dem Namen datumabrechnung hinzu.
  4. Füge zwei Optionsfelder hinzu: optionheute und optiongestern.
  5. Füge den folgenden VBA-Code in das Benutzerformular ein, um die Datumsüberprüfung zu implementieren:

    Private Sub cmdPruefen_Click()
        If optiongestern.Value = False And optionheute.Value = False Then
            If Trim(datumabrechnung.Text) = "" Then
                MsgBox "Sie müssen ein Datum eingeben!"
                Exit Sub
            ElseIf IsDate(datumabrechnung.Text) = False Then
                MsgBox "Sie haben ein falsches Datum eingegeben!"
                Exit Sub
            End If
        End If
    End Sub
  6. Testen das Formular, indem du verschiedene Datumsformate eingibst.

Häufige Fehler und Lösungen

  • Problem: Datum wird falsch umgewandelt (z.B. 31.2.19 wird zu 3.3.19).

    • Lösung: Stelle sicher, dass du die Eingabe zuerst überprüfst, bevor Excel die automatische Umwandlung vornehmen kann. Verwende IsDate() für die Überprüfung.
  • Problem: Die Textbox akzeptiert leere Eingaben.

    • Lösung: Prüfe, ob die Textbox leer ist, bevor du die Datumsvalidierung durchführst.

Alternative Methoden

Eine alternative Methode zur Überprüfung von Datumseingaben ist die Verwendung von ComboBoxen:

  1. Erstelle drei ComboBoxen für Tag, Monat und Jahr.
  2. Fülle die ComboBoxen mit den entsprechenden Werten:
    • Tag: 1-31
    • Monat: 1-12
    • Jahr: z.B. 2018 bis 2025
  3. Kombiniere die Werte, um ein Datum zu erstellen und überprüfe, ob es gültig ist.

Praktische Beispiele

  1. Fehlerhafte Eingabe: Wenn der Benutzer 31.2.19 eingibt, gibt die MsgBox eine Warnung aus. Dies hilft, Schreibfehler zu identifizieren.
  2. VBA-Beispiel:

    If Month(datumabrechnung.Value) = 2 And Day(datumabrechnung.Value) > 29 Then
        MsgBox "Der eingegebene Tag im Februar ist ungültig!"
    End If

Tipps für Profis

  • Nutze die Formatierungsoptionen in Excel, um sicherzustellen, dass Datumsformate einheitlich sind.
  • Implementiere eine Zulassung für zukünftige Jahre, um falsche Eingaben wie 31.2.19 zu vermeiden, indem du nur Jahre ab 2018 akzeptierst.
  • Achte darauf, welche Monatsangaben falsch geschrieben werden könnten. Beispielsweise könnte "Februar" als "Febraur" eingegeben werden, was zu Problemen führen kann.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Benutzer nur gültige Daten eingibt?
Verwende die IsDate() Funktion in VBA, um die Eingabe zu überprüfen, bevor du das Datum weiterverarbeitest.

2. Was kann ich tun, wenn Excel das Datum automatisch ändert?
Implementiere eine Vorabprüfung der Eingabe, um sicherzustellen, dass der Benutzer die richtige Monats- und Tageskombination eingegeben hat.

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