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

Sichererungskopie xlsm als xlsx

Forumthread: Sichererungskopie xlsm als xlsx

Sichererungskopie xlsm als xlsx
18.05.2017 13:38:41
Peter
Liebe Experten,
ich versuche von einer xlsm-Datei mittels eines Makros eine Sicherungskopie unter einen anderen Namen und als xlsx-Datei zu erstellen aber es gelingt mir nicht. Andauerdn erhalte ich den Fehler: Bennanntes Argument nicht gefunden.

ActiveWorkbook.SaveCopyAs Filename:=Environ("USERPROFILE") & pfad & "Test.xlsx", FileFormat:= _
xlOpenXMLWorkbook
Was mache ich falsch?
Danke für Eure Hilfe im voraus!
Lg,
Peter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sichererungskopie xlsm als xlsx
18.05.2017 13:49:31
JoWE
Hall Peter,
ich glaube Du musst SaveAs statt SaveCopyAs nehmen wenn Du das Fileformat bestimmen willst.
Gruß
Jochen
AW: Sichererungskopie xlsm als xlsx
18.05.2017 14:32:52
Peter
Hallo Jochen,
der u.g. Code funktioniert aber ich möchte dass meine Originaldatei Test.xlsm offen bleibt und das Speichern der Kopie unter Test(backup).xlsx im Hintergrund abläuft.

Sub Kopie()
Dim FName As String
FName = Left(ActiveWorkbook.name, _
InStr(ActiveWorkbook.name, ".")) & _
"(backup).xls"
ActiveWorkbook.SaveAs Filename:=pfad & FName, FileFormat:=51
End Sub
LG,
Peter
Anzeige
AW: Sichererungskopie xlsm als xlsx
18.05.2017 15:09:02
JoWE
...
habe keine zündendere Idee, aber so geht's vllt.:
Sub Kopie()
Application.ScreenUpdating = False
Dim FName As String
FName = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".")) & _
"(backup)"
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & FName & ".xls"
Workbooks.Open ThisWorkbook.Path & "\" & FName & ".xls"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & FName & ".xlsx", FileFormat:=51
ActiveWorkbook.Close
Kill ThisWorkbook.Path & "\" & FName & ".xlsx"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Gruß
Jochen
Anzeige
AW: Sichererungskopie xlsm als xlsx
18.05.2017 15:10:45
JoWE
...uups, es muss lauten
Kill ThisWorkbook.Path & "\" & FName & ".xls"
AW: Sichererungskopie xlsm als xlsx
18.05.2017 16:28:41
Peter
Hallo Jochen,
habe noch ein wenig rumgespielt und so scheint es zu funktionieren:

Sub Dateicopy()
Dim KdFc, pfad As String
KdFc = "Test")    'Dateiname
pfad = "C:\...\"
merker = ThisWorkbook.FullName
Application.DisplayAlerts = False
With ThisWorkbook
Application.EnableEvents = False
.Application.ScreenUpdating = False
.Save
.SaveAs pfad & Replace(KdFc, "xlsm", "xlsx"), xlWorkbookDefault
.Application.EnableEvents = True
ClearClipboard = True
.Save
.Application.ScreenUpdating = True
Workbooks.Open merker
.Close
End With
Cancel = True
End Sub
Vielen Dank für deine Antworten
LG, Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sicherungskopie einer xlsm-Datei als xlsx erstellen


Schritt-für-Schritt-Anleitung

Um eine Sicherungskopie einer xlsm-Datei als xlsx zu erstellen, kannst du den folgenden VBA-Code verwenden. Achte darauf, dass du den Pfad und den Dateinamen entsprechend anpasst.

Sub Dateicopy()
    Dim KdFc, pfad As String
    KdFc = "Test"  ' Dateiname ohne Endung
    pfad = "C:\...\"
    merker = ThisWorkbook.FullName

    Application.DisplayAlerts = False
    With ThisWorkbook
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        .Save
        .SaveAs pfad & Replace(KdFc, "xlsm", "xlsx"), xlWorkbookDefault
        Application.EnableEvents = True
        ClearClipboard = True
        .Save
        Application.ScreenUpdating = True
        Workbooks.Open merker
        .Close
    End With
    Cancel = True
End Sub

In diesem Beispiel wird die Methode SaveAs verwendet, um die xlsm-Datei in das xlsx-Format zu speichern. Du kannst den Dateityp durch xlWorkbookDefault festlegen, was für xlsx-Dateien geeignet ist.


Häufige Fehler und Lösungen

  • Fehler: "Benanntes Argument nicht gefunden"

    • Dieser Fehler tritt auf, wenn du beim Speichern den SaveCopyAs-Befehl mit einem FileFormat-Argument verwendest. Um dies zu vermeiden, nutze SaveAs anstelle von SaveCopyAs, wie von Jochen vorgeschlagen.
  • Fehler: Originaldatei wird geschlossen

    • Achte darauf, dass du die Originaldatei nicht schließt, wenn du eine Kopie speicherst. Verwende SaveCopyAs, um die Originaldatei offen zu halten.

Alternative Methoden

Eine alternative Methode zum Speichern deiner xlsm-Datei als xlsx ist die Verwendung von Workbooks.Open und ActiveWorkbook.SaveAs. Hier ist ein Beispiel:

Sub Kopie()
    Application.ScreenUpdating = False
    Dim FName As String
    FName = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".")) & "(backup)"

    ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & FName & ".xls"
    Workbooks.Open ThisWorkbook.Path & "\" & FName & ".xls"
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & FName & ".xlsx", FileFormat:=51
    ActiveWorkbook.Close
    Kill ThisWorkbook.Path & "\" & FName & ".xls"
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Hier wird zuerst eine xls-Datei gespeichert, die dann in das xlsx-Format umgewandelt wird.


Praktische Beispiele

Ein praktisches Beispiel wäre die Umwandlung einer Datei namens "Test.xlsm" in "Test(backup).xlsx". Der VBA-Code könnte wie folgt aussehen:

Sub BackupTest()
    Dim pfad As String
    pfad = "C:\...\"

    ActiveWorkbook.SaveCopyAs Filename:=pfad & "Test(backup).xlsx", FileFormat:=51
End Sub

Hierbei wird die Sicherungskopie direkt im angegebenen Pfad gespeichert.


Tipps für Profis

  • Nutze die Application.ScreenUpdating-Eigenschaft, um die Bildschirmaktualisierung während des Speichervorgangs zu deaktivieren. Dies kann die Performance deiner Makros verbessern.

  • Stelle sicher, dass du die Application.DisplayAlerts-Eigenschaft korrekt verwendest, um unerwünschte Dialogfelder zu vermeiden, die während des Speichervorgangs erscheinen.

  • Überprüfe den Unterschied zwischen xlsx und xlsm, um zu verstehen, wann du welche Dateiformate verwenden solltest.


FAQ: Häufige Fragen

1. Wie kann ich eine xlsm-Datei in xlsx umwandeln? Du kannst eine xlsm-Datei in xlsx umwandeln, indem du den SaveAs-Befehl mit dem entsprechenden FileFormat verwendest.

2. Was ist der Unterschied zwischen xlsx und xlsm? Der Hauptunterschied besteht darin, dass xlsm-Dateien Makros enthalten können, während xlsx-Dateien dies nicht tun. Verwende xlsm, wenn du VBA-Code in deiner Datei benötigst.

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