gibt es eine Möglichkeit das Datum ohne Punkt einzugeben und Excel wandelt das Datum korrekt um.
Beispiel
Eingabe 0503 in der Zelle wird dann 05.03.2017(immer aktueller Jahr) übernommen.
Gruss
miri
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Dim Zelle As Range
Dim Bereich As Range
Set Bereich = Range("A1:A100")
If Not Intersect(Target, Bereich) Is Nothing Then
For Each Zelle In Intersect(Target, Bereich)
If IsNumeric(Zelle) And Len(Zelle) = 4 Then
Application.EnableEvents = False
Zelle = Format(DateValue(Left(Zelle, 2) & "." & Mid(Zelle, 3, 2) & "." & Year(Date)), "DD.MM.YYYY")
Application.EnableEvents = True
End If
Next
End If
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Zelle als Text formatieren:
VBA-Code einfügen:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Dim Zelle As Range
Dim Bereich As Range
Set Bereich = Range("A1:A100")
If Not Intersect(Target, Bereich) Is Nothing Then
For Each Zelle In Intersect(Target, Bereich)
If IsNumeric(Zelle) And Len(Zelle) = 4 Then
Application.EnableEvents = False
Zelle = Format(DateValue(Left(Zelle, 2) & "." & Mid(Zelle, 3, 2) & "." & Year(Date)), "DD.MM.YYYY")
Application.EnableEvents = True
End If
Next
End If
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Eingabe testen:
Eingabe wird nicht erkannt: Wenn Du die Eingabe „0503“ machst und nichts passiert, überprüfe, ob die Zellen als Text formatiert sind.
VBA-Code funktioniert nicht: Stelle sicher, dass Du den Code im richtigen Blatt eingefügt hast. Der Code muss im Arbeitsblattmodul gespeichert werden, nicht im Modul.
Eine andere Möglichkeit, das Datum ohne Punkt in Excel einzugeben, ist die Verwendung von Excel-Formeln:
Textformel verwenden:
=DATUM(JAHR(HEUTE());LINKS(A1;2);TEIL(A1;3;2))
Diese Formel wandelt „0503“ in das Datum „05.03.Jahr“ um.
Eingabe „0503“ in Zelle A1:
Eingabe „2804“ in Zelle A2:
Mit dem VBA-Skript wird dies automatisch umgesetzt, während Du die Daten eingibst.
Automatisierung: Du kannst den VBA-Code so anpassen, dass er auf einen größeren Bereich anwendbar ist, indem Du Range("A1:A100") änderst.
Fehlerprotokollierung: Füge eine Fehlerprotokollierung hinzu, um Probleme besser nachvollziehen zu können, falls etwas schiefgeht.
1. Kann ich diesen Ansatz auch für andere Formate verwenden? Ja, Du kannst den VBA-Code anpassen, um auch andere Datumsformate zu unterstützen.
2. Was passiert, wenn ich mehr als 4 Ziffern eingebe? Der Code ignoriert Eingaben, die nicht genau 4 Ziffern haben. Es wird empfohlen, nur 4 Ziffern einzugeben, um die automatische Umwandlung zu gewährleisten.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen