Hi,
ich habe mir erstmals deinen Code genauer angeschaut. Siehe dazu auch den letzten Absatz!
Die Ursache für dein komisches verhalten, ist die unsinnige Verwendung von Format() in der Zeile
Code:
strDatei = Format(Range("C1"))
Hiermit sagst du VBA explizit, dass es den Inhalt von C1 nochmals formatieren soll. Damit versucht Excel den Inhalt nochmals neu zu interpretieren und stellt fest, dass es sich um ein Datum handelt und gibt dann
05/2026 als
01.05.2026 aus. Wenn du Format() weg lässt, dann wird einfach nur der Inhalt der Zelle und somit der Text
05/2026 ausgegeben - wenn denn in der Zelle dieser Text steht.
Wie gesagt wird Windows dieses aber nicht als Dateinamen anerkennen. Wenn du in der Zelle den Text
05/2026 stehen haben willst aber statt dem Schrägstrich z.B. den Underscore stehen haben willst, dann kannst du dein Formet() in dieser Form verwenden:
Code:
strDatei = Format(Range("C1"), "MM_YYYY")
Damit erhältst du die Ausgabe
05_2026Beachte dabei, dass für den Formatstring die englischen Bezeichnungen und Regeln nötig sind.
Übrigens: eine Hilfedatei statt eines Bildes erleichtert die Hilfe enorm.
Aber wenigstens hättest du deinen Code in kopierbarer Form hier einfügen können. Niemand tippt gern Text aus Bildern ab. Zum Testen ist aber ein ausführbarer Code notwendig.