Automatische Datumsformatierung verhindern

Bild

Betrifft: Automatische Datumsformatierung verhindern
von: Michael Reich
Geschrieben am: 01.03.2005 15:19:53
Hallo Excel-Gemeinde,
wenn in Excel ein Datum eingegeben wird (z.B. 01.03.2005) wandelt Excel das automatisch in ein Datumsformat um. Ich habe das Problem, dass ich die Zelle in der das Datum eingegeben wird, als "standard" formatiert lassen muss (Datenübergabe an eine TM1-Datenbank). Durch das feste Format der Zelle steht nach der Eingabe dann z.B. "38412" drin.
Die Variante mit dem Hochkomma vor dem Datum funktioniert zwar, ist aber auf Dauer umständlich.
Also - die Eingabe soll einfach so bleiben, wie sie ist.
Wenn mir jemand helfen könnte, wäre das toll.
MfG Michael Reich

Bild

Betrifft: AW: Automatische Datumsformatierung verhindern
von: Matthias G
Geschrieben am: 01.03.2005 15:28:04
Hallo Michael,
formatiere die Zelle(n) als Text.
(Der Hinweis ist eigentlich so naheliegend, dass ich fürchte, ich habe dich missverstanden ;-)
Gruß Matthias
Bild

Betrifft: AW: Automatische Datumsformatierung verhindern
von: c0bRa
Geschrieben am: 01.03.2005 15:36:02
... deswegen hab ich den vorschlag nicht gepostet ;)
nun kriegst du die steine ab, wenns nich geht :P

c0bRa
Bild

Betrifft: AW: Automatische Datumsformatierung verhindern
von: Michael Reich
Geschrieben am: 01.03.2005 15:37:48
Hallo Matthias,
das ist ja mein Problem - ich kann die Zelle nicht als Text formatieren.
Mal etwas weiter ausgeholt: In der Zelle steht eine Funktion drin. Überschreibe ich diese Zelle nun mit einem Datum, wird dieses Datum in eine Datenbank geschrieben und danach steht wieder die Funktion drin.
Würde ich diese Zelle als Text formatieren, würde diese Funktion auch als Text erkannt werden und nicht als Funktion (aber ich glaube, das ist schon zu TM1-spezifisch).
Ich bin trotzdem dankbar für jeden Tipp.
Gruß Micha
Bild

Betrifft: AW: Automatische Datumsformatierung verhindern
von: Matthias G
Geschrieben am: 01.03.2005 15:44:31
Hallo Micha,
Da wird ja wohl ein Makro mit im Spiel sein. Wäre es da nicht möglich, das Zellformat mittels Code zu ändern?
Hier mal ein Beispiel:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As String
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    Application.EnableEvents = False
    t = Target.Text
    If IsDate(Target) Then
        Target.NumberFormat = "@"
        Target.Value = t
    Else
        Target.NumberFormat = "General"
    End If
    Application.EnableEvents = True
End If
End Sub
Gruß Matthias
Bild

Betrifft: AW: Automatische Datumsformatierung verhindern
von: Matthias G
Geschrieben am: 01.03.2005 15:48:08
Hallo nochmal,
kleine Korrektur: bei nicht-Datumsformat muss die Zelle auch neu geschrieben werden:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As String
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    Application.EnableEvents = False
    t = Target.Text
    If IsDate(Target) Then
        Target.NumberFormat = "@"
        Target.Value = t
    Else
        Target.NumberFormat = "General"
        Target.Value = t
    End If
    Application.EnableEvents = True
End If
End Sub
Gruß Matthias
Bild

Betrifft: Danke für die Hilfe ...
von: Michael Reich
Geschrieben am: 01.03.2005 16:54:56
... aber das hilft leider auch nicht. Der Inhalt der Zelle (die Funktion) wird durch Event-Abfragen vor Veränderung geschützt.
Das ganze funktioniert so:
1. In der Zelle steht eine Funktion: =DBRW(Param1;Param2;Param3...)
2. Dann schreibt man z.B. ein Datum da rein
3. Die Event-Prozedur fängt diese Eingabe ab und schreibt den eingegebenen Wert entsprechend der Parameter in der Funktion in eine Datenbank.
4. Danach wird wieder die alte Funktion eingetragen.
Das Problem ist
1. dass Excel zw. Punkt 2 und 3 schon die Formatänderungen vornimmt
2. Die Eventverarbeitung nicht abgeschaltet werden darf, da sonst die Funktion gelöscht wird.
Danke noch mal für die Tipps, aber ich muss mir wohl was anderes einfallen lassen.
Gruß Micha
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Automatische Datumsformatierung verhindern"