Hallo,
Gast77504 hat ja bereits einen Code veröffentlicht, der funktionieren sollte.
Hier nur als Klarstellung:
Workbook.SaveCopyAs erstellt eine Kopie der Datei. Dabei wird (unabhängig vom Dateinamen/Dateinamenserweiterung der neuen Datei) das Dateiformat der ursprünglichen Datei verwendet - ist ja auch eine Kopie.
Und bei Workbook.SaveAs kannst (und solltest) du das Dateiformat, welches beim Speichern der neuen Datei verwendet wird, angeben (mit dem Parameter FileFormat). Bei SaveAs würde ich [b]immer[/b] das Dateiformat mit angeben und die Dateiendung nicht angeben (es wird automatisch durch die Angabe des Parameter FileFormat die richtige Dateiendung ausgewählt und hinzugefügt). So ist sichergestellt, dass Dateiformat und Dateiendung zusammen passen.
Es gab oft korrupte Dateien, die sich "merkwürdig" verhalten haben, was letztendlich genau darauf zurück geführt werden konnte: sie wurden mit VBA in einem anderen Dateiformat gespeichert, als die Dateiendung vermuten lässt. Das ist (oder war zumindest äußerst lange) buggy.
Meiner persönlichen Meinung nach ist es ein Fehler, dass der Parameter FileFormat in der Workbook.SaveAs-Methode optional ist. Er sollte immer angegeben werden.
Grüße, Ulrich
|