Herbers Excel-Forum - das Archiv

Datumeingabe als TT.MM.JJJJ erscheinen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox UserForm
Bild

Betrifft: Datumeingabe als TT.MM.JJJJ erscheinen
von: Sophie

Geschrieben am: 13.12.2006 12:59:10
Hallo liebe Freunde!
Wie kann ich Excel dazubringen, wenn ich 01012000 eingebe, dass er das weiß und 01.01.2000 erscheinen lässt ???
Hat jemande eine Idee?
Wäre sehr-sehr dankbar !!!!
Alles Liebe !
Sophie
Bild

Betrifft: AW: Datumeingabe als TT.MM.JJJJ erscheinen
von: Oberschlumpf

Geschrieben am: 13.12.2006 13:16:25
Hi Sophie
Dieses Bsp bezieht sich auf Spalte A:
1. Dieses Bsp "verlangt" die Werteingabe so:
TTMMJJJJ
Falsch wäre
TTMMJJ
2. zuerst allen betroffenen Zellen in Spalte A das Format Text zuweisen
3. dann diesen Code einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then '1 steht für Spalte A, 2 = B, 3 = C usw - musst du vielleicht anpassen (du verrätst ja nicht, in welcher Spalte deine Daten stehen)
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
Target.Value = Left(Target.Value, 2) & "." & Mid(Target.Value, 3, 2) & "." & Right(Target.Value, 4)
Target.NumberFormat = "m/d/yyyy" 'Zelle wird automatisch von Textformat auf Datumsformat umgestellt
Target.HorizontalAlignment = xlRight 'Wert wird rechts ausgerichtet
Application.EnableEvents = True
End If
End Sub

Konnte ich helfen?
Ciao
Thorsten
Bild

Betrifft: AW: Datumeingabe als TT.MM.JJJJ erscheinen
von: EtoPHG

Geschrieben am: 13.12.2006 13:16:51
Hallo liebe Sophie,
...ich 01012000 eingebe, dass er das weiß und 01.01.2000 erscheinen lässt ???
Fragen über Fragen:
Wer ist er ?
Wo gibst Du das ein, in eine Zelle, eine Textbox, Userform... ?
Wie soll Excel diese Eingabe von einer 'normalen' Zahl unterscheidn ?
Was heisst erscheinen lassen ?... Willst Du mit dem Datum weiterrechnen
Beispiel in A1 steht 01012000 in B1 steht diese Formel:
=DATUM(RECHTS(A1;4);LINKS(RECHTS(A1;6);2);LINKS(A1;LÄNGE(A1)-6))

,d.h. mit B1 kannst Du wie mit einem Datum rechnen.
... oder, soll die Zelle nur so formatiert werden, d.h. Du machst keine Bezüge auf diese Zelle?
Dann kannst Du die Zelle A1 so formatieren: Benutzerdefiniert 00"."00"."0000
Gruss Hansueli
Bild

Betrifft: AW: Datumeingabe als TT.MM.JJJJ erscheinen
von: Sophie

Geschrieben am: 13.12.2006 15:25:43
Hallo lieber Thorsten, lieber Hansueli,
habe ausprobiert! beides funktioniert! COOL!!!
Thorsten, kleine Frage, könnte ich den Code nicht an die ganze Spalte, sondern nur an ausgewählte Zeilen beziehen? (F8, J8, I25, M25)?
Vielen lieben Dank!!!!
Herzliche Grüße
Sophie
Bild

Betrifft: AW: Datumeingabe als TT.MM.JJJJ erscheinen
von: EtoPHG

Geschrieben am: 13.12.2006 17:36:44
Hallo Sophie,
Wenn Du diesen Code in DieseArbeitsmappe kopierst, führt er auf Rechtsklick in eine beliebige Zelle oder einen Zellenbereich (eines beliebigen Blattes der besagten Mappe) die sogenannte "Sophiesche Datumswandlung" durch, sofern in der Zelle eine Wert steht, der sich auch umwandeln lässt.
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim cCell As Range
On Error Resume Next
Application.EnableEvents = False
For Each cCell In Target
cCell.Value = DateSerial(Right(cCell, 4), Left(Right(cCell, 6), 2), Left(cCell, Len(cCell) - 6))
Next
Application.EnableEvents = True
Cancel = True
End Sub

Gruss Hansueli
Bild

Betrifft: AW: Datumeingabe als TT.MM.JJJJ erscheinen
von: Oberschlumpf

Geschrieben am: 13.12.2006 18:41:39
Hi Sophie
Bin wieder daaa...die Zeit mit den Weihnachtsfeiern beginnt nun auch für mich :-)
Meinst du Zeilen oder Zellen?
Ich vermute, du meinst Zellen.
Versuch es mal so:
Private Sub Worksheet_Change(ByVal Target As Range)
'dieser Code wird nur ausgeführt, wenn ein Wert DER Zellen geändert wird,
'die in der folgenden Befehlszeile aufgeführt sind
If Intersect(Target, Range("F8, J8, I25, M25")) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
Application.EnableEvents = False
Target.Value = Left(Target.Value, 2) & "." & Mid(Target.Value, 3, 2) & "." & Right(Target.Value, 4)
Target.NumberFormat = "m/d/yyyy"
Target.HorizontalAlignment = xlRight
Application.EnableEvents = True
End Sub

Konnte ich helfen?
Ciao
Thorsten
 Bild
Excel-Beispiele zum Thema "Datumeingabe als TT.MM.JJJJ erscheinen"
Datum über Zehnertastatur im Modus 1-1 als TT.MM.JJJJ ausgeben