Clever-Excel-Forum

Normale Version: [VBA] .xlsm als .xlsx speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich möchte gerne meine Excel Mappe mit Makros ohne Makros abspeichern, damit ich sie in ein CAD-Programm einspeisen kann.
Ich habe mir gedacht, dass ich eine Kopie der Mappe mit Makros erstelle, damit diese nicht verloren gehen und ich die dann aktuelle Mappe ohne Makros abspeichere.

Ich benutze folgenden Code:

Code:
Sub Speichern()

With ThisWorkbook
.SaveCopyAs "C:\Users\CAD02\Desktop\EXCEL MIT MAKROS SAVECOPYAS.xlsm"
.SaveAs "C:\Users\CAD02\Desktop\Excel_Link_TopSolid.xlsm", FileFormat:=xlOpenXMLWorkbook
'.Close
End With

'MsgBox "Gespeichert:   " & ThisWorkbook.Saved & vbCrLf & vbCrLf & "Die Excelmappe kann nun über den Excel-Link in TopSolid eingespeist werden."

End Sub

Wenn die Sub Speichern() ausgeführt wird, kommt die Nachfrage, ob ich es wirklich ohne Makros abspeichern möchte. So weit so gut.
Bestätige ich dies nun jedoch, erscheint in VBA folgende Fehlermeldung:

Laufzeitfehler '1004':
Diese Erweiterung kann nicht mit dem ausgewählten Dateityp verwendet werden.
Ändern Sie die Dateierweiterung im Textfeld 'Dateiname', oder wählen Sie einen anderen
Dateityp aus, indem Sie die Auswahl unter 'Speichern unter' ändern.

Vielleicht kann mit ja jemand helfen, bin noch ziemlich neu in VBA.

LG
Moin!
Nun ja:
Die Fehlermeldung beschreibt doch exakt Deinen Fauxpas. Richtig ist:

.SaveAs "C:\Users\CAD02\Desktop\Excel_Link_TopSolid", FileFormat:=xlOpenXMLWorkbook

Die Dateiendung braucht nicht angegeben zu werden, wenn das FileFormat genannt wird.

Zur Nachfrage von Excel:
Die kannst Du beruhigt mittels Application.DisplayAlerts = False ausschalten.

Gruß Ralf
Jetzt klappt's einwandfrei! Vielen Dank!