# VBA Umwandeln von string in date



## ronnyk (17. Juni 2004)

Hallo!
Hab eine String-Variable und eine date-variable.
Wie kann ich unter VBA sagen das er die string_var in eine gültige datumsvariable speichert?



```
str_var = "20040615"  'Für 15.06.2004
```

Das Format der string-var beibt immer gleich.


----------



## Ein_Freund (17. Juni 2004)

Also wenn das Format immer gleich bleibt, kann ich Dir auf die Schnelle folgendes anbieten:


```
Dim date_var as Date
date_var = CDate(Right$(str_var, 2) & "." & Mid$(str_var, 5, 2) & "." & Left$(str_var, 4))
```

Ich wüsste nicht, dass es dafür eine Funktion gibt, da der Fall doch ziemlich speziell ist, aber ich kann mich auch irren. Wenn's jemand weiss, bitte posten.


----------



## ronnyk (17. Juni 2004)

*Juhu*

Vielen, vielen Dank!
Funktioniert wunderbar. 

OK darf jetzt Feierabend machen!
 
Also dann bis morgen vielleicht.!


----------



## JensG (21. Juni 2004)

Hallo ronnyk,

natürlich funktioniert das Beispiel, aber mit DateSerial wärst du dann
auch noch unabhängig von den Ländereinstellungen.

Falls nämlich bei der Verwendung des vorherigen Codes ein englisches
Windows laufen würde wäre ein Laufzeitfehler das Ergebnis.

date_var = DateSerial(Left$(str_var, 4), Mid$(str_var, 5, 2), Right$(str_var, 2))

Jens


----------



## Ein_Freund (21. Juni 2004)

@ JensG: Das finde ich sehr interessant. Kannst Du mir den Hintergrund nochmal ein bisschen ausführlicher erklären?

Danke


----------



## ronnyk (21. Juni 2004)

*Kein Problem!*

Vielen Dank erstmal!


Tschau


----------



## JensG (21. Juni 2004)

@Ein_Freund

Gerne.
Teste es doch mal und stelle bei dir in den Ländereinstellung auf
Englisch um.

Dann hast du als Datumsseperator keinen Punkt sonder "/".
Und ein CDate auf  15.06.2004 bringt dann einen Laufzeitfehler
13 Typen unverträglich.

Gruß
Jens


----------



## Ein_Freund (21. Juni 2004)

Hab's mal ausprobiert und nun auch vollständig verstanden.
Ist schon seltsam, ich programmiere VB seit einigen Jahren, aber so ein simples DateSerial ist mir noch nicht untergekommen.

Vielen Dank JensG,

bis dann...

EDIT: Nachtrag @ ronnyk: Mit diesem Wissen ist es dann wirklich sinnvoller, DateSerial zu verwenden. Man kann den Ausdruck dann ja immernoch in das gewünschte Format bringen...


----------

