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

Forumthread: XLSM als XLSX speichern und Makro weiter ausführen

XLSM als XLSX speichern und Makro weiter ausführen
08.11.2019 11:29:23
Matthias
Hallo zusammen
Ich habe eine XLSM Excel-Datei in der ich auf jeder Zeile Adressen eintrage und dazu ein paar vertrauliche Angaben. Nach einer Weile, möchte ich mit einem Makro folgendes tun:
Zuerst eine Kopie in einem anderen Ordner abspeichern (konnte ich)
Dann den vertraulichen Teil löschen (konnte ich)
Die Datei nun als XLSX an jemanden versenden (konnte ich auch)
Und als letzter Schritt, die XLSM Datei komplett leeren. Das konnte ich nicht, weil ich die XLSM Datei nur mit SAVAS speichern konnte und dann das Makro nicht fertig ausgeführt wird.
Wie kann ich das denn bewerkstelligen? Nur mit einer externen XLSM Datei die nur für den "Makro-Teil" zuständig ist?
Danke und einen schönen Tag
Matthias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: XLSM als XLSX speichern und Makro weiter ausführen
08.11.2019 11:35:40
peterk
Hallo
Mit SaveAs XLSX wird dein Makro eleminiert! Nimm SaveCopyAs
Peter
AW: XLSM als XLSX speichern und Makro weiter ausführen
08.11.2019 11:40:59
Matthias
Hey Peter
Wenn ich SaveCopyAs nehme, kann ich aber nur das identische Dateiformat speichern (also nur XLSM und nicht XLSX).
Oder kennst du eine Geheimlösung? :-)
LG Matthias
AW: XLSM als XLSX speichern und Makro weiter ausführen
08.11.2019 11:58:29
peterk
Hallo
OK, ist doch nicht so einfach. Hier ein Workaround
Option Explicit

Sub Sa()
  ActiveWorkbook.Sheets.Copy  ' ein neues Workbook wird erzeugt und ist sofort aktiv 
  ActiveWorkbook.SaveAs Filename:="C:\Users\...\SaveCopyAs.xlsx", FileFormat:=51
  ActiveWorkbook.Close
  Debug.Print "still alive ..."
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Anzeige
AW: XLSM als XLSX speichern und Makro weiter ausführen
08.11.2019 12:07:11
Matthias
Das ist cool !!! Danke Peter :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

XLSM in XLSX umwandeln und Makros weiter ausführen


Schritt-für-Schritt-Anleitung

  1. Öffne deine XLSM-Datei: Stelle sicher, dass du die Datei mit den Makros geöffnet hast.
  2. Kopiere die Arbeitsblätter: Verwende den folgenden VBA-Code, um die Arbeitsblätter in ein neues Workbook zu kopieren:

    Option Explicit
    
    Sub Sa()
       ActiveWorkbook.Sheets.Copy ' ein neues Workbook wird erzeugt und ist sofort aktiv
       ActiveWorkbook.SaveAs Filename:="C:\Users\...\SaveCopyAs.xlsx", FileFormat:=51
       ActiveWorkbook.Close
       Debug.Print "still alive ..."
    End Sub
  3. Speichere die neue Datei als XLSX: Der obige Code speichert die Kopie der Arbeitsblätter als XLSX-Datei. Stelle sicher, dass du den Pfad anpasst.
  4. Lösche vertrauliche Daten: Bevor du die XLSM-Datei leerst, lösche die vertraulichen Informationen.
  5. Leere die XLSM-Datei: Du kannst die XLSM-Datei jetzt leer lassen oder die Daten nach Bedarf anpassen.

Häufige Fehler und Lösungen

  • Fehler beim Speichern: Wenn du "ActiveWorkbook.SaveAs" verwendest, könnte es sein, dass dein Makro gelöscht wird. Verwende stattdessen "SaveCopyAs", um die aktuelle Datei zu kopieren und als XLSX zu speichern.
  • Speichermodus: Achte darauf, dass du das richtige FileFormat verwendest. Für XLSX ist es 51.

Alternative Methoden

  1. VBA-Funktion SaveCopyAs: Diese Methode speichert eine Kopie der aktuellen Arbeitsmappe, lässt jedoch die ursprüngliche Datei unverändert. Du musst jedoch sicherstellen, dass du die Datei im gleichen Format speicherst.

  2. Manuelles Speichern: Du kannst die Datei auch manuell im Excel-Menü unter "Datei" > "Speichern unter" als XLSX speichern, aber dies entfernt alle Makros.


Praktische Beispiele

  • Beispiel für das Speichern:

    ' Speichere ein Arbeitsblatt als XLSX
    Sub Speichern()
       Sheets("MeinBlatt").Copy
       ActiveWorkbook.SaveAs Filename:="C:\Users\...\MeinBlatt.xlsx", FileFormat:=51
       ActiveWorkbook.Close
    End Sub
  • Leere die XLSM-Datei:

    Sub Leeren()
       Cells.ClearContents
    End Sub

Tipps für Profis

  • Verwende FileFormat konstant: Anstatt die Zahlenwerte für FileFormat zu verwenden, nutze die Konstanten wie xlOpenXMLWorkbook für XLSX, um deinen Code lesbarer zu machen.
  • Backup deiner Dateien: Bevor du Änderungen vornimmst, erstelle immer eine Sicherheitskopie deiner XLSM-Datei.

FAQ: Häufige Fragen

1. Kann ich eine XLSM-Datei als XLSX speichern, ohne Makros zu verlieren?
Nein, das Speichern einer XLSM-Datei als XLSX entfernt alle Makros. Verwende SaveCopyAs für eine Kopie.

2. Was ist der Unterschied zwischen XLSM und XLSX?
XLSM-Dateien unterstützen Makros, während XLSX-Dateien keine Makros enthalten können. Wenn du die Funktionalität von Makros benötigst, solltest du bei XLSM bleiben.

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