man brauchte eine Umwandlung eines US-Datums in ein deutsches. Der Fragesteller bekam ein Formel mit gefühlt 15 schließenden Klammern, die zwar seinen Zweck erfüllte, er aber nicht verstand. Ich auch nicht. Daher hier meine Übersetzung nach VBA (Code in eine Tabelle):
Als Beispiel waren gegeben: Jun 6,2021 und Jun 10,2021. Das Problem war die Frage Tag einstellig/zweistellig.
Code: Alles auswählen
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sDate As String, sDay As String, sMonth As String, sYear As String
Dim dDate As Date
Dim i As Integer, iDate As Integer, iPos As Integer
Dim aMonthName, aMonthNumber 'Array
Cancel = True
aMonthName = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
aMonthNumber = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
'holt den Text des Doppelklicks in die String-Variable
sDate = Target.Value
'isoliert die Jahreszahl
sYear = Right(sDate, 4)
'übersetzt den Monatsnamen in seine Zahl
sMonth = Left(sDate, 3)
For i = 0 To UBound(aMonthName)
If aMonthName(i) = sMonth Then
sMonth = aMonthNumber(i)
End If
Next i
'isoliert den Tag
iPos = InStr(sDate, ",")
sDay = Mid(sDate, iPos - 2, 2)
If Left(sDay, 1) = " " Then
sDay = "0" & Right(sDay, 1)
End If
'setzt die Strings zusammen und konvertiert sie zu Datum
sDate = sDay & "." & sMonth & "." & sYear
dDate = CDate(sDate)
Target.Offset(0, 1) = dDate
MsgBox dDate
End Sub