Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehler bei SaveCopyAs

Fehler bei SaveCopyAs
24.05.2020 09:16:34
MarC
Guten Morgen alle,
ich möchte beim schließen meiner Datei automatisch eine Sicherheitskopie im Ordner 000_Archiv ablegen. Leider funktioniert der unten abgebildete Code nicht. Ich erhalte immer die Meldung Laufzeitfehler 1004 Datei kann nicht gefunden werden. Kann mir bitte jemand sagen was daran falsch ist? Ich bin fest davon ausgegangen dass das stimmt.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Me.SaveCopyAs "C:\Users\xxxxxxxx\Desktop\xxxxxxxx\000_Archiv\" & "Mappe1" & " - " & Format(Date, _
"yyyy.mm.dd  hh:mm") & " (" & Application.UserName & ").xlsm"
End Sub
https://www.herber.de/bbs/user/137697.xlsm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei SaveCopyAs
24.05.2020 09:29:18
Hajo_Zi
benutze den Makrorecorder.
ActiveWorkbook.SaveAs Filename:= _
"W:\Eigene Dateien\Hajo\Internet\Test\2020\Woche\Forum 22.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled

...da ist er wieder, Hajo unser Forenclown...
24.05.2020 09:34:25
Martin
...und hat einmal mehr Blödsinn gepostet.
@Hajo: Es geht um SaveCopyAs, nicht um SaveAs. Bei SaveCopyAs gibt es das Argument FileFormat nicht.
Anzeige
AW: Für die 3s die er guckt, sieht er viel...
24.05.2020 11:41:17
Sulprobil
...und zwar viel Falsches :-)
Aber Niemand ist unnütz - er kann immer noch als schlechtes Beispiel dienen.
AW: Fehler bei SaveCopyAs
24.05.2020 09:29:45
Martin
Hallo MarC,
der Doppelpunkt von der Uhrzeit ist im Dateinamen unzulässig.
Viele Grüße
Martin
Danke Martin und Hajo
24.05.2020 09:43:13
MarC
Das ärgert mich jetzt. Den doofen Fehler hätte ich nie gefunden. Ich habe sogar noch einen drin es muss Now heißen und nicht Date sonst wird mir die Uhrzeit nicht angezeigt. Danke Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Erstellen von Sicherheitskopien mit SaveCopyAs in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Sicherheitskopie Deiner Excel-Datei beim Schließen automatisch zu erstellen, kannst Du den folgenden VBA-Code verwenden. Dieser Code sollte in das Workbook-Modul Deiner Excel-Datei eingefügt werden.

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Suche im Projektfenster nach Deiner Arbeitsmappe und klicke mit der rechten Maustaste darauf.
  3. Wähle Einfügen > Modul, um ein neues Modul zu erstellen.
  4. Füge den folgenden Code in das ThisWorkbook-Modul ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim filePath As String
    filePath = "C:\Users\xxxxxxxx\Desktop\xxxxxxxx\000_Archiv\" & _
                "Mappe1 - " & Format(Now, "yyyy.mm.dd hh-mm") & _
                " (" & Application.UserName & ").xlsm"
    Me.SaveCopyAs filePath
End Sub
  1. Achte darauf, den Pfad in filePath entsprechend anzupassen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Datei kann nicht gefunden werden
    Dieser Fehler tritt häufig auf, wenn der angegebene Pfad nicht existiert. Überprüfe, ob der Ordner 000_Archiv tatsächlich vorhanden ist und der Pfad korrekt angegeben wurde.

  • Ungültige Zeichen im Dateinamen
    Achte darauf, dass im Dateinamen keine ungültigen Zeichen wie Doppelpunkte (:) verwendet werden. Ersetze sie durch gültige Zeichen, wie z.B. Bindestriche (-).


Alternative Methoden

Falls Du Schwierigkeiten mit SaveCopyAs hast, kannst Du auch die Methode SaveAs verwenden. Beachte jedoch, dass SaveAs den aktuellen Arbeitsbuchinhalt überschreibt, während SaveCopyAs eine Kopie erstellt.

Beispiel für SaveAs:

ActiveWorkbook.SaveAs Filename:="C:\Users\...\Dateiname.xlsx", FileFormat:=xlOpenXMLWorkbook

Praktische Beispiele

Hier sind einige Beispiele, wie Du SaveCopyAs in verschiedenen Szenarien verwenden kannst:

  1. Sicherheitskopie in einem anderen Format:

    ThisWorkbook.SaveCopyAs "C:\Backup\MeineMappe.xlsb" ' Speichert als Binary Workbook
  2. Sicherheitskopie mit Zeitstempel:

    Me.SaveCopyAs "C:\Backup\Mappe_" & Format(Now, "yyyymmdd_hhmm") & ".xlsm"

Tipps für Profis

  • Verwende ThisWorkbook anstelle von ActiveWorkbook, um sicherzustellen, dass Du immer die aktuelle Arbeitsmappe speicherst, unabhängig davon, welche Arbeitsmappe aktiv ist.

  • Testen des Codes: Teste Deinen Code in einer sicheren Umgebung, bevor Du ihn in produktiven Dateien anwendest.

  • Ereignisprozeduren: Du kannst auch andere Ereignisse wie Workbook_Open oder Workbook_Close verwenden, um zusätzliche Automatisierungen zu implementieren.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen SaveCopyAs und SaveAs?
SaveCopyAs erstellt eine Kopie der Arbeitsmappe, ohne die aktuelle Datei zu schließen oder zu überschreiben, während SaveAs die aktuelle Arbeitsmappe speichert und ggf. den Dateinamen ändert.

2. Kann ich SaveCopyAs für andere Dateiformate verwenden?
Ja, SaveCopyAs kann verwendet werden, um Dateien in verschiedenen Formaten zu speichern, solange die Endung im Dateinamen korrekt angegeben wird (z.B. .xlsm, .xlsx).

3. Wie kann ich den Speicherort für die Sicherung ändern?
Du kannst den filePath im Code anpassen, um einen anderen Speicherort für die Sicherheitskopie anzugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige