Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA xltm Datei speichern unter xlsm

VBA xltm Datei speichern unter xlsm
16.11.2017 21:42:02
Roland
Hallo Liebes Forum!
Vielleicht kann mir jemand helfen, ich möcht mit folgendem Code aus Autocad eine xltm öffnen und speichern unter xlsm. Es wird das Fenster "Speichern unter" geöffnet, Pfad asuswahl ist möglich, Dateiname kann ich eingeben, Dateiendung .xlsm bekomme ich zur auswahl, aber wenn ich speichern klicke, öffnet sich nur das excel file, aber gespeichert ist es nicht...
was kann da der fehler sein?
Danke schon im Voraus!
Sub test()
Dim Excel As Excel.Application
Set Excel = New Excel.Application
Dateiformat = "Excel Files (*.xlsm), *.xlsm"
Speicherpfad = "C:\test\"
Excel.Workbooks.Open(Vorlagexltm).SaveAs Filename:=Excel.Application.GetSaveAsFilename( _
Speicherpfad, Dateiformat)
Excel.Application.Visible = True
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA xltm Datei speichern unter xlsm
16.11.2017 23:05:05
Uduuh
Hallo,
mit GetSaveAsFiename wird lediglich der Dateiname ermittelt aber nicht gespeichert.
Versuch's so:
Sub test()
Dim Excel As Excel.Application
Dim DateiFormat As String, SpeicherPfad As String
Dim vntFileName As Variant
Set Excel = New Excel.Application
DateiFormat = "Excel Files (*.xlsm), *.xlsm"
SpeicherPfad = "C:\test\"
Excel.Workbooks.Open (Vorlagexltm)
vntFileName = Excel.Application.GetSaveAsFilename(SpeicherPfad, DateiFormat)
If vntFileName  False Then
Excel.ActiveWorkbook.SaveAs vntFileName
End If
Excel.Application.Visible = True
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: VBA xltm Datei speichern unter xlsm
17.11.2017 15:01:33
Roland
Hallo Udo!
Danke für die Antwort, ist aber trotzdem nichts anders geworden.
Ich erhalte den Speichern unter Dialog, siehe Screenshot, aber wenn ich speichern klicke, wird nichts gespeichert...
Userbild
Anzeige
AW: VBA xltm Datei speichern unter xlsm
17.11.2017 15:07:19
Roland
Jetzt hab ich noch mal versucht dass Dateiformat auf *.xlsx zu ändern, dann geht das Speichern komischerweise...
Aber ich brauch *.xltm weil sonst die Makros weg sind.
AW: VBA xltm Datei speichern unter xlsm
17.11.2017 15:22:53
Roland
so, Fehler selbst gefunden :)
irgendwie muss man excel trotzdem noch sagen wie eine xlsm zu speichern ist...
Damit gehts jetzt:
Excel.ActiveWorkbook.SaveAs vntFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, addtomru:=True
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: xltm Datei speichern unter xlsm


Schritt-für-Schritt-Anleitung

Um eine .xltm Datei in Excel unter der Dateiendung .xlsm zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser Code öffnet die Vorlage und ermöglicht es Dir, die Datei im gewünschten Format zu speichern.

Sub test()
    Dim Excel As Excel.Application
    Dim DateiFormat As String, SpeicherPfad As String
    Dim vntFileName As Variant
    Set Excel = New Excel.Application
    DateiFormat = "Excel Files (*.xlsm), *.xlsm"
    SpeicherPfad = "C:\test\"
    Excel.Workbooks.Open ("Vorlage.xltm")
    vntFileName = Excel.Application.GetSaveAsFilename(SpeicherPfad, DateiFormat)
    If vntFileName <> False Then
        Excel.ActiveWorkbook.SaveAs vntFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, addtomru:=True
    End If
    Excel.Application.Visible = True
End Sub

Dieser Code nutzt GetSaveAsFilename, um den Dateinamen zu ermitteln und speichert das Dokument anschließend mit dem richtigen FileFormat für .xlsm.


Häufige Fehler und Lösungen

  1. Fehler: Datei wird nicht gespeichert
    Wenn Du nach dem Drücken auf "Speichern" kein Ergebnis siehst, überprüfe, ob das FileFormat richtig gesetzt ist. Verwende xlOpenXMLWorkbookMacroEnabled für .xlsm.

  2. Fehler: Dialog öffnet sich, aber keine Speicherung
    Achte darauf, dass Du den Rückgabewert von GetSaveAsFilename überprüfst. Wenn dieser False ist, wurde kein Dateiname gewählt.


Alternative Methoden

Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du die Datei auch manuell speichern:

  1. Öffne die .xltm Datei in Excel.
  2. Wähle „Datei“ > „Speichern unter“.
  3. Wähle den Speicherort und setze die Dateiendung auf .xlsm.
  4. Klicke auf „Speichern“.

Diese Methode erfordert keine Programmierung, ist jedoch weniger automatisiert.


Praktische Beispiele

Ein Beispiel für den Einsatz von VBA in einer Excel-Anwendung könnte sein, dass Du regelmäßig Berichte generierst, die auf einer .xltm Vorlage basieren. Mit dem oben genannten VBA-Code kannst Du diesen Prozess automatisieren und die Berichte schnell unter .xlsm speichern, ohne jedes Mal manuell durch den Speicherdialog zu gehen.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind.
  • Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Fehler während des Speichervorgangs abzufangen.
  • Wenn Du regelmäßig das fileformat ändern musst, erwäge, dies in einer Konstante zu speichern, um den Code wartungsfreundlicher zu gestalten.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Dateinamen in VBA vorgeben?
Antwort: Du kannst den Dateinamen direkt im SaveAs-Befehl angeben, oder ihn durch GetSaveAsFilename vom Benutzer wählen lassen.

2. Frage
Was ist der Unterschied zwischen .xlsm und .xltm?
Antwort: .xlsm ist das Standardformat für Excel-Arbeitsmappen mit Makros, während .xltm ein Vorlagenformat ist, das ebenfalls Makros enthalten kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige