VBA Datumsproblem

17/08/2008 - 14:48 von Eberhard Funke | Report spam
Hallo,

in einer Tabelle steht in A1:A3 jeweils 10.01. als Text formatiert.
Das soll umgewandelt werden in Datum 10.01.2008

Der folgende Code (mit zwei Varianten zur Umwandlung) funktioniert, wenn
das Ergebnis in eine andere Zelle geschrieben wird, jedoch nicht, wenn die
Ursprungszelle überschrieben werden soll.

Sub DatProb()
Range("B1").Value = _
DateValue(Range("A1").Value & "2008")
'B1 = 10.01.2008 Format ok!
Range("C1").Value = _
DateSerial(2008, Mid(Range("A1").Value, 4, 2), _
Left(Range("A1").Value, 2))
'C1 = 10.01.2008 Format ok!
Range("A2").Value = _
DateValue(Range("A2").Value & "2008")
'A2 = 1/10/2008 Format: TEXT!
'mit TabFkt DATWERT --> 10.Okt!
Range("A3").Value = _
DateSerial(2008, Mid(Range("A3").Value, 4, 2), _
Left(Range("A3").Value, 2))
'A3 = 1/10/2008 Format: TEXT!
'mit TabFkt DATWERT --> 10.Okt!
End Sub

Das falsche Datum liesse sie zwar mit einem Workaround koorigieren:

Dim A As Variant
A = Split(Range("A2").Value, "/")
Range("A2").Value = DateSerial(A(2), A(0), A(1))

aber das wàre grrrrrr

Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de
 

Lesen sie die antworten

#1 Peter Schleif
17/08/2008 - 16:09 | Warnen spam
Eberhard Funke schrieb am 17.08.2008 14:48 Uhr:

Der folgende Code (mit zwei Varianten zur Umwandlung) funktioniert, wenn
das Ergebnis in eine andere Zelle geschrieben wird, jedoch nicht, wenn die
Ursprungszelle überschrieben werden soll.



Es klappt, wenn Du die Zellen _vorher_ auf das richtige Format setzt:

[A2].NumberFormat = "dd.mm.yyyy"
[A2] = DateValue([A2] & "2008")

[A3].NumberFormat = "dd.mm.yyyy"
[A3] = DateSerial(2008, Mid([A3], 4, 2), Left([A3], 2))

Peter

Ähnliche fragen