>> Hallo ich würde gerne, damit eine combobox füllen. Das Format sollte aber sein: z.b. Montag, 1.12. Aber es soll nicht wie in meinem Code ein Text, sondern ein datumswert mit dem gerechnet werden kann.
Daten ansich und das anzeigen dieser sind strikt voneinander zu trennen, im Arbeitsspeicher und auf der Festplatte sind alles nur Einsen und Nullen die nach Wunsch umgewandelt auf dem Bildschirm angezeigt werden können. Ob diese gespeicherten Daten in der Anzeige einen Sinn ergeben ist ne ganz andere Sache.
Nehmen wir das Beispiel aus dem vorherigen Beitrag:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Option Explicit
Sub Example()
Dim dtm As Date
dtm = #6/1/2017#
dtm = DateAdd( "d" , 3, dtm)
dtm = DateAdd( "d" , -5, dtm)
dtm = DateAdd( "ww" , 1, dtm)
End Sub
|
Hier wurde ein wenig mit dem Datum gerechnet:
Willst du diese ausgeben, dann wandelst du die Daten in eine Zeichenkette (String) um.
1 2 3 4 5 6 7 8 9 10 11 12 13 | Option Explicit
Sub Example()
Dim dtm As Date
dtm = #6/1/2017#
MsgBox "ddd, dd.mm. -> " & Format$(dtm, "ddd, dd.mm." )
MsgBox "yyyy-dd-mm -> " & Format$(dtm, "yyyy-dd-mm" )
MsgBox "yyyy dd.mm -> " & Format$(dtm, "yyyy dd.mm" )
End Sub
|
Willst du damit wieder rechnen, musst du den String wieder in ein Datum (Date) umwandeln. Das ist je nach dem vorliegenden Format einfach oder etwas fummelig.
Bei z.B. "Montag, 1.12." wirds fummelig, da die Standardfunktionen von VBA das nicht von selbst aufgelöst und umgewandelt bekommen. Abhilfe wäre hier das Datum in einer versteckten Spalte "normal" abzulegen und mit diesem zu rechnen.
Gruß
|