AW: Schreibweise Datum mit Makro
16.09.2016 14:44:40
Michael
Hi,
ich habe Uwes Formel getestet: sie funktioniert anscheinend nur bis B2, darunter kommt ein Fehler.
Beim Makros war das seltsamerweise genauso; es liegt anscheinend daran, daß "Jan" auf dt. und engl. übereinstimmt, "Dec" bzw. "Dez" aber nicht.
Anbei Datei mit UDF (das ist eine selbstgestrickte Funktion, die man direkt in der Tabelle einsetzen kann) im Modul1: https://www.herber.de/bbs/user/108213.xlsm
Das Makro sieht so aus:
Option Explicit
Const e2d = "MayMaiOctOktDecDez"
Public Function D2D(r As Range)
Dim w$, wOut$, i&, p&
w = r.Text
For i = 1 To Len(w)
' Debug.Print i & ": " & Asc(Mid(w, i, 1))
If Asc(Mid(w, i, 1)) 63 Then wOut = wOut & Mid(w, i, 1)
Next
' Debug.Print "e: " & wOut
' Stop
p = InStr(e2d, Left(wOut, 3))
If p > 0 Then wOut = Mid(e2d, p + 3, 3) & Mid(wOut, 4)
' Debug.Print "d: " & wOut
D2D = DateValue(wOut)
End Function
Die Konstante e2d (für english to deutsch) enthält nacheinander je die englische und die deutsche Schreibweise und ist erweiterbar, falls ich noch was übersehen habe.
In der Function werden alle 63er aussortiert, anschließend wird überprüft, ob die ersten 3 Buchstaben (das Monatskürzel) in e2d enthalten ist, und falls ja, wird es durch die deutsche Schreibweise ersetzt.
Am liebsten hätte ich nicht nur den 63 aussortiert, sondern alles, was außerhalb von "0-9", "a-z" und "," ist, aber wenn sich die Daten nicht ändern, sollte es ja so laufen.
Schöne Grüße,
Michael