Excel 2010 Makro : Speichern als XLSM

nchristoph

Erfahrenes Mitglied
Hallo zusammen,

ich bin gerade beim Umbauen unseres Angebotsprogramms welches ich mit eurer Hilfe in Excel realisiert habe.

Ich hab nur noch einen Punkt offen und das wäre Speichern als .xlsm.

Ich hab mir ein Makro geschrieben, das die Datei in den Richtigen Ordner mit dem richtigen Namen speichert.

Code:
Sub Schaltfläche9_BeiKlick()
Dim dialog As Object
Dim Pfad As String
Dim datei As String
Pfad = "O:\"
'datei = ActiveWorkbook.SaveAs Range("B1").Value & Range("I5").Value & ".xls"
datei = ActiveSheet.Range("B1").Value & " " & ActiveSheet.Range("M11").Value & " " & ActiveSheet.Range("C13").Value & ".xlsm"
Set dialog = Application.FileDialog(msoFileDialogSaveAs)
With dialog
.InitialFileName = Pfad & datei
.Show
End With
If dialog <> False Then dialog.Execute
End Sub

Leider speichert Excel mir das immer als .xlsx ab.

Kann mir wer sagen, wie ich das Macro umbauen muss damit es als .xlsm speichert?

Ich brauche die Makros mitgespeichert, damit ich das Angebot später wieder bearbeiten kann und es richtig abgespeichert wird.

Gegoogled habe ich natürlich, aber ich habe nichts gefunden, was mir irgendwie weiterhilft.

mfg
 
Zuletzt bearbeitet:
Lies dir mal die Hilfe zur SaveAs-Metode GENAU druch.
Es bringt nix den Dateinamen/Dateiendung anzugeben. du musst auch den Dateityp angeben
 
Hallo,

ich hab mir die SaveAs Methode jetzt durchgeschaut, find aber keinen Weg, der funktioniert mit meinem Code.

Ich habe es jetzt so versucht:

Code:
.InitialFileName = Pfad & datei, FileExtStr = ".xlsm": FileFormatNum = 52

Wenn ich den Code ausführe, kommt ne Debugfehlermeldung Nr. 484 in der Zeile.
 
Wie lautet die Fehler-Beschreibung für Fehler 484?

btw: Hast du schonmal FileFormatNum=25 versucht? Nr. 25 = xlIntlMacro 25 Internationales Makro
 
Ich hab jetzt deine FileFormatNum versucht, jetzt ist zwar die Fehlermeldung weg, speichern tut er mir trotzdem keine Makros oder als xlsm.

Jetzt schreibt er mir dafür folgende Fehlermeldung hin:

Fehler beim Kompilieren, Anweisungsende erwartet und verweist auf den Beistrich nach datei
 
So nach langem geteste und gegoogle habe ich jetzt eine halbwegs funktionierende Funktion zusammengebracht.

Leider wirft mir der Debugger jetzt ne Laufzeitfehlermeldung aus.

Fehler beim Kompilieren, Syntax Error

Code:
Sub Schaltfläche9_BeiKlick()
Dim vntPathAndFile As String
Dim strFileName As String
strFileName = "O:\Holz\Thurnhofer 2012\Angebote Kunden Holz- Terrassen 2012\" & ActiveSheet.Range("B1").Value & " " & ActiveSheet.Range("M11").Value & " " & ActiveSheet.Range("C13").Value & ".xlsm"
vntPathAndFile = Application.GetSaveAsFilename(strFileName, "Excel-Arbeitsmappe mit Makros (*.xlsm), *.xlsm", , "Speichern als")
If vntPathAndFile = "" Then Exit Sub
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=vntPathAndFile, FileFormat:=IIf(Val(Application.Version) > 11, 56, xlNormal)
ActiveWorkbook.Close
End Sub

Woran kann das liegen?

Der fehler tritt nur auf, wenn ich das Speichern abbreche.
 
Nein, nur die Meldung: Fehler beim Kompilieren, Syntaxerror.
Code:
ActiveWorkbook.SaveAs Filename:=vntPathAndFile, FileFormat:=IIf(Val(Application.Version) > 11, 56, xlNormal)

Das ist die Zeile wo er hinspringt. Gleichzeitig speichert Excel eine Datei mit dem Namen Falsch.xlsm ab, wobei ich den Namen nirgendwo vergebe.
 

Neue Beiträge

Zurück