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

Tabellenblatt als XLSM speichern

Forumthread: Tabellenblatt als XLSM speichern

Tabellenblatt als XLSM speichern
14.12.2015 11:19:54
Kai
Hi zusammen,
möchte aus Excel heraus per VBA ein Tabellenblatt per Outlook versenden.
Der Code funktioniert soweit. Tabellenblatt wird in eine leere Outlook mail
als neue Mappe kopiert, in dieser Mappe ist dasnn das angesprochene Tabellenblatt.
Blöderweise speichert Excel das herausgetrennte Tabellenblatt als .xlsx
Ich brauche aber als Format in meiner Mais ein xlsm Format.
Hier ist det Teil, wo das Tabellenblatt gespeichert wird.
was mus ich denn da ändern ?
strBlatt = ActiveSheet.Name
Sheets(strBlatt).Copy
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
Danke Kai

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt als XLSM speichern
14.12.2015 11:32:29
Stefan
Ich habe es bei mir wie folgt gelöst.
If Not IsEmpty(Worksheets("Rechnung").Range("D10").Value) Then
Worksheets("Rechnung").Copy
With ActiveWorkbook
With Worksheets("Rechnung").UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
Call .SaveAs(FileName:="E:....\" & "Formularrechnung" & _
.Worksheets("Rechnung").Range("D22").Text & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled)
Call .Close(SaveChanges:=False)
Diese hiermit erstellte Datei habe ich dem Email angehängt.

Anzeige
AW: Tabellenblatt als XLSM speichern
15.12.2015 09:20:08
Kai
Hallo Stefan,
danke, aber irgend wie komme ich mit Deinem Pfad nicht klar:
FileName:="E:....\" & "Formularrechnung" & _
.Worksheets("Rechnung").Range("D22").Text & ".xlsm
Bei mir soll die Datei im Verzeichnis C:\Temp\ abgelegt werden.
Das müsste doch so gehen :
With ActiveWorkbook
With Worksheets("Planung").UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
Call .SaveAs(Filename:="C:\Temp\Planung_neu" & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled)
Call .Close(SaveChanges:=False)
In diesem Fall wird aber die ganze Mappe abgespeichert, nicht nur das einzelne Sheet "Planung"
Was mache ich denn falsch ?
Danke
Kai
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt als XLSM speichern


Schritt-für-Schritt-Anleitung

Um ein Tabellenblatt in Excel per VBA als XLSM-Datei zu speichern, kannst du die folgenden Schritte befolgen:

  1. Tabellenblatt kopieren: Verwende den Befehl Sheets(strBlatt).Copy, um das aktive Tabellenblatt zu kopieren.
  2. Aktives Workbook speichern: Nutze die Methode ActiveWorkbook.SaveAs, um das kopierte Blatt im gewünschten Format zu speichern.
  3. Datei speichern im XLSM-Format:
    ActiveWorkbook.SaveAs Filename:="C:\Temp\DeinDateiname.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
  4. Workbook schließen: Du kannst das Workbook nach dem Speichern schließen, um die Änderungen zu speichern:
    ActiveWorkbook.Close SaveChanges:=False

Achte darauf, dass du den richtigen Dateipfad und Dateinamen angibst.


Häufige Fehler und Lösungen

  1. Fehler: Datei wird im falschen Format gespeichert
    Lösung: Stelle sicher, dass du das FileFormat auf xlOpenXMLWorkbookMacroEnabled setzt. Beispiel:

    Call .SaveAs(FileName:="C:\Temp\DeinDateiname.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled)
  2. Fehler: Ganze Arbeitsmappe wird gespeichert
    Lösung: Wenn du nur ein einzelnes Sheet speichern möchtest, kopiere das Blatt in ein neues Workbook, bevor du es speicherst:

    Sheets("DeinBlatt").Copy
    ActiveWorkbook.SaveAs Filename:="C:\Temp\DeinBlatt.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

Alternative Methoden

Falls du die Datei nicht direkt mit VBA speichern möchtest, kannst du auch die folgenden Alternativen in Betracht ziehen:

  • Speichern als PDF: Du kannst das Tabellenblatt auch als PDF speichern, indem du den Befehl ExportAsFixedFormat verwendest:

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Temp\DeinBlatt.pdf"
  • Manuelles Speichern: Du kannst das Blatt manuell kopieren und dann über "Speichern unter" im gewünschten Format speichern.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Anwendung des SaveAs-Befehls:

  1. Speichern eines Rechnungsblatts:

    If Not IsEmpty(Worksheets("Rechnung").Range("D10").Value) Then
       Worksheets("Rechnung").Copy
       With ActiveWorkbook
           .SaveAs Filename:="C:\Temp\Rechnung_" & Worksheets("Rechnung").Range("D22").Text & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
           .Close SaveChanges:=False
       End With
    End If
  2. Speichern eines Planungsblatts:

    Sheets("Planung").Copy
    ActiveWorkbook.SaveAs Filename:="C:\Temp\Planung_neu.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    ActiveWorkbook.Close SaveChanges:=False

Tipps für Profis

  • Verwende Variablen für Dateipfade: Um den Code flexibler zu gestalten, kannst du den Dateipfad in einer Variablen speichern:

    Dim strPfad As String
    strPfad = "C:\Temp\"
    ActiveWorkbook.SaveAs Filename:=strPfad & "DeinDateiname.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
  • Fehlerbehandlung einbauen: Verwende On Error Resume Next, um sicherzustellen, dass dein Code auch bei Fehlern weiterläuft.


FAQ: Häufige Fragen

1. Wie speichere ich ein Tabellenblatt als PDF?
Du kannst das Tabellenblatt mit ExportAsFixedFormat als PDF speichern. Beispiel:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Temp\DeinBlatt.pdf"

2. Was bedeutet das FileFormat in VBA?
Das FileFormat gibt an, in welchem Format die Datei gespeichert werden soll. Für XLSM-Dateien ist der Wert xlOpenXMLWorkbookMacroEnabled erforderlich.

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