# Excel 2010 Makro : Speichern als XLSM



## nchristoph (5. April 2012)

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.


```
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


----------



## Zvoni (5. April 2012)

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


----------



## nchristoph (11. April 2012)

Hallo,

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

Ich habe es jetzt so versucht:


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

Wenn ich den Code ausführe, kommt ne Debugfehlermeldung Nr. 484 in der Zeile.


----------



## Zvoni (11. April 2012)

Wie lautet die Fehler-Beschreibung für Fehler 484?

btw: Hast du schonmal FileFormatNum=25 versucht? Nr. 25 = xlIntlMacro 25 Internationales Makro


----------



## nchristoph (12. April 2012)

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


----------



## Zvoni (12. April 2012)

Sorry, wo genau tritt der Fehler auf? So ganz hab ich dich jetzt nicht verstanden.


----------



## nchristoph (21. Juni 2012)

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


```
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.


----------



## Zvoni (21. Juni 2012)

Gibts auch ne Fehlernummer/Beschreibung?


----------



## nchristoph (21. Juni 2012)

Nein, nur die Meldung: Fehler beim Kompilieren, Syntaxerror.

```
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.


----------

