Hallo Gerhard,
danke für Dein Feedback. Dein Hinweis auf den englisch-sprachigen Eingabe-Anforderungstext bringt "Licht ins "Dunkel":
[1] ORIGINAL - LO [ENG]: Wandelt YYYY-MM-DD (internationales Format) in MM-DD-YYYY (US Format) um.
Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Please input a date in the international format YYYY-MM-DD:")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub
[1.1] Mid(sInput,6,2): Nimm ab dem 6. Zeichen 2 Zeichen => MM
[1.2] Right(sInput,2): Nimm 2 Zeichen von rechts => DD
[1.3] Left(sInput,4): Nimm 4 Zeichen von links: => YYYY
[2] ORIGINAL - LO [DEU]: Erzeugt Quatsch, da die Eingabeaufforderung ein falsches Datumsformat anfordert:
Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im englischen Format MM-DD-YYYY ein:")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub
[2.1] Mid(sInput,6,2): Nimm ab dem 6. Zeichen 2 Zeichen => -Y
[2.2] Right(sInput,2): Nimm 2 Zeichen von rechts => YY
[2.3] Left(sInput,4): Nimm 4 Zeichen von links: => MM-D
[3] KORRIGIERT - LO [DEU]: Wandelt YYYY-MM-DD (internationales Format) in MM/DD/YYYY (US Format) um.
Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im internationalen Format YYYY-MM-DD ein:")
sUS_date = Mid(sInput, 6, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput, 2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput, 4)
MsgBox sUS_date
End Sub
[3.1] Mid(sInput,6,2): Nimm ab dem 6. Zeichen 2 Zeichen => MM
[3.2] Right(sInput, 2): Nimm 2 Zeichen von rechts => DD
[3.3] Left(sInput, 4): Nimm 4 Zeichen von links: => YYYY
Die einfachste Lösung ist sicherlich, wie von Dir vorgeschlagen, den deutschen Eingabetext zu korrigieren.
Mein Vorschlag wäre, zusätzlich die "InputBox"-Anzeige um die Information "YYYY-MM-DD (Datum international) => MM/DD/YYYY (Datum US)" zu ergänzen, da vielleicht nicht jeder weiß, wie das Format des "USDate" ausschaut und dann vielleicht irritiert ist, wenn "MM/DD/YYYY" ausgegeben wird.
[4] Ergänzte "InputBox"-Anzeige
[4.1] VORSCHLAG - LO [ENG]: Wandelt YYYY-MM-DD (internationales Format) in MM/DD/YYYY (US Format) um.
Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Please input a date in the international format YYYY-MM-DD:",_
"YYYY-MM-DD (date international) => MM/DD/YYYY (date US)")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub
[4.1] VORSCHLAG - LO [DEU]: Wandelt YYYY-MM-DD (internationales Format) in MM/DD/YYYY (US Format) um.
Sub ExampleUSDate
Dim sInput As String
Dim sUS_date As String
sInput = InputBox("Geben Sie bitte ein Datum im internationalen Format YYYY-MM-DD ein:",_
"YYYY-MM-DD (Datum international) => MM/DD/YYYY (Datum US)")
sUS_date = Mid(sInput,6,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Right(sInput,2)
sUS_date = sUS_date & "/"
sUS_date = sUS_date & Left(sInput,4)
MsgBox sUS_date
End Sub
An welche "Liste" man das senden sollte, weiß ich auch nicht - "BugReport" sicherlich nicht. So hoffe ich auch, das dies von jemandem mitgelesen wird, der weiß, wer diesbezüglich informiert werden sollte - oder es vielleicht sogar gleich selbst "in die Wege leitet".
Gruß
Hans-Werner
------ Originalnachricht ------