Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1700to1704
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mit VBA yyyymmdd in dd.mm.jjjj umwandeln

mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 15:05:17
Werner
Hallo Forum,
ich habe ein Datum in der numerischen Form yyyymmdd (20190709) und möchte nun den Folgetag errechnen und diesen im Format dd.mm.jjjj ausgeben.
Bisher baue ich aus dem String yyyymmdd das Datum im Format dd.mm.jjjj zusammen und nutze dann DateAdd(), um den Folgetag zu ermitteln.
Gibt es dafür einen einfacheren Weg?
Bisher
Gruß Werner

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 15:27:18
UweD
Hallo
auf das dateAdd() könntest du verzichten und anstelle +1 rechnen

Dim DatumText As String
Dim DatumNeu As Date
DatumText = "20190709"
DatumNeu = DateSerial(Left(DatumText, 4), Mid(DatumText, 5, 2), Right(DatumText, 2)) + 1
LG UweD
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 15:56:52
Werner
Hallo UweD.
Danke!
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 17:20:52
Daniel
Hi
Noch ne Variante
folgeTag = CDate(Format(20190709, "0000-00-00")) + 1
Gruß Daniel
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 18:12:50
Werner
Hallo Daniel,
herzlichen Dank für Dein Beispiel. Es funktioniert prima.
Jetzt habe ich aber ein Folgeproblem: als Ergebnis hätte ich das Datum sehr gerne wieder in der Form yyyymmdd. Wie mache ich das?
Gruß Werner
Anzeige
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 18:43:01
Daniel
Hi
naja, auch wieder mit Format: Format(Datumswert;"YYYYMMDD")
wobei Format einen Text liefert, dh wenn du den Wert als Zahl benötigst, noch CLng(...) umwandeln, oder darauf hoffen, dass es im implizite Typumwandlung bei Bedarf macht.
Gruß Daniel
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 18:43:09
Daniel
Hi
naja, auch wieder mit Format: Format(Datumswert;"YYYYMMDD")
wobei Format einen Text liefert, dh wenn du den Wert als Zahl benötigst, noch CLng(...) umwandeln, oder darauf hoffen, dass es im implizite Typumwandlung bei Bedarf macht.
Gruß Daniel
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 20:42:26
Werner
Hallo Daniel,
leider schaffe es nicht, den Folgetag in der Schreibweise yyyymmdd zu erhalten.
Mein Test-Code:
Debug.Print CDate(Format(20190228, "0000-00-00")) + 1
Debug.Print CDate(Format(20190228, "yyyyddmm")) + 1
Beim 2. CDate erhalte ich den Laufzeitfehler 6. Was mache ich falsch?
Zum Verständnis: ich brauche den Folgetag in den beiden Schreibarten dd.mm.yyyy und yyyymmdd.
Gruß Werner
Anzeige
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 20:58:33
Daniel
Hi
dein Fehler ist, dass du dir nicht klar darüber bist, wann du ein echtes Exceldatum vorliegen hast (das ist eine Zahl, die fortlaufend ab dem 1.1.1900 gezählt wird und jeden Tag um 1 erhöht wird) und wann einen Text oder eine Ziffernfolge, die für ich wie ein Datum aussieht, aber für Excel nichts mit einem Datum zu tun hat (20190709), sondern einfach nur irgendwelche Dinge planlos zusammenschmeißt.
wenn du ausgehend von der Ziffernfolge 20190709 den Folgetag in der gleichen Form haben willst, musst du folgendes verwenden:
Format(CDate(Format(20190709;"0000-00-00")) + 1, "YYYYMMDD")
also in folgender Abfolge:
1. Ziffernfolge in Datum wandeln
2. zum Datum einen Tag hinzuaddieren
3. Datum in Ziffernfolge zurückwandeln.
Gruß Daniel
Anzeige
AW: mit VBA yyyymmdd in dd.mm.jjjj umwandeln
09.07.2019 21:09:50
Werner
Hallo Daniel,
Du hast mir sehr geholfen. Mit meinem Basis-Wissen hätte ich das nicht herausgefunden.
Mein Problem ist damit gelöst. Und jetzt schicke ich meinen Rechner in die Nachtruhe.
Gruß Werner

132 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige