US-Datum in deutsches konvertieren

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 683
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 177 Mal
Danksagung erhalten: 91 Mal

US-Datum in deutsches konvertieren

#1

Beitrag von d'r Bastler »

Moin allerseits,

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

Grüße
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
theos
Beiträge: 34
Registriert: 15. Sep 2022, 21:48
Hat sich bedankt: 2 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Re: US-Datum in deutsches konvertieren

#2

Beitrag von theos »

Datümer lassen sich am allereinfachten mit dem Textkonverter umwandeln. Das ist so banal, dass ich da kein VBA anwerfe dafür.
Folgende Benutzer bedankten sich beim Autor theos für den Beitrag:
d'r Bastler
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste