Dateien richtig speichern: Überschreiben von Dateien verhindern
Schritt-für-Schritt-Anleitung
Um das Überschreiben von Dateien in Excel VBA zu verhindern, kannst Du den folgenden Code verwenden. Dieser überprüft, ob die Datei bereits existiert, bevor sie gespeichert wird.
- Öffne das VBA-Editor-Fenster in Excel (ALT + F11).
- Füge ein neues Modul hinzu.
- Platziere den folgenden Code in das Modul:
Private Sub CommandButton1_Click()
Dim bm As String
Sheets("Tabelle1").Copy
Const s = "F:\__Info_IDM\Neue_Vorschläge\"
' Benutzer zur Eingabe eines Dateinamens auffordern
NameEingeben:
bm = InputBox("Bitte Dateinamen mit Namen ergänzen:", _
"Speichern unter: " & s & Format(Now, "yyyy-mm-dd") & "-")
' Überprüfen, ob der Benutzer einen Namen eingegeben hat
If bm <> "" Then
' Prüfen, ob die Datei bereits existiert
If Dir(s & bm & ".xlsx") <> "" Then
MsgBox "Datei bereits vorhanden"
GoTo NameEingeben
Else
' Datei speichern, wenn sie nicht existiert
ActiveWorkbook.SaveAs s & bm & ".xlsx"
End If
End If
ActiveWorkbook.Close False
Workbooks("IDM_Formular.xlsm").Close False
End Sub
- Teste das Makro, indem Du auf den entsprechenden Button klickst.
Häufige Fehler und Lösungen
Fehler 1: Die Datei wird trotz Warnung überschrieben.
- Lösung: Stelle sicher, dass die Zeile
Application.DisplayAlerts = False
aus dem Code entfernt wird, um die Warnhinweise nicht zu deaktivieren.
Fehler 2: Die Ursprungsdatei schließt sich nach der Warnung.
- Lösung: Verwende die
Goto
-Anweisung, um den Benutzer erneut zur Eingabe eines Dateinamens aufzufordern, wenn die Datei bereits vorhanden ist.
Alternative Methoden
Eine alternative Methode, um das Überschreiben von Dateien zu verhindern, ist die Verwendung von Excel-Funktionen wie IF
und ISERROR
, um die Existenz der Datei zu überprüfen, bevor Du das VBA-Makro ausführst. Diese Methode ist jedoch weniger flexibel und kann den Arbeitsablauf verlangsamen.
Praktische Beispiele
Angenommen, Du arbeitest mit einem Workbook, das VB-Projekte enthält, und möchtest sicherstellen, dass diese gespeichert werden, ohne dass die Datei überschrieben wird. Hier ist ein Beispiel, wie das Makro in der Praxis aussehen könnte. Achte darauf, dass vb-projekte müssen in arbeitsmappen mit makros gespeichert werden
korrekt gehandhabt wird, indem Du das Makro in einer Arbeitsmappe mit Makros speicherst.
If vbProjektKannNichtGespeichertWerden Then
MsgBox "Bitte speichere die Datei als Arbeitsmappe mit Makros."
End If
Tipps für Profis
- Automatisierung: Überlege, das Makro so zu gestalten, dass es automatisch einen Zeitstempel an den Dateinamen anhängt, um die Wahrscheinlichkeit zu verringern, dass Dateien überschrieben werden.
- Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung innerhalb Deines Makros, um Probleme beim Speichern von Dateien zu dokumentieren.
FAQ: Häufige Fragen
1. Wie kann ich das Überschreiben deaktivieren, ohne die Warnhinweise zu entfernen?
Du kannst die Eingabeaufforderung für den Dateinamen so anpassen, dass der Benutzer bei jedem Versuch, einen bereits bestehenden Namen zu verwenden, zurück zur Eingabe geleitet wird.
2. Was muss ich beachten, wenn ich mit VB-Projekten arbeite?
Achte darauf, dass Deine Arbeitsmappe als Makro-aktivierte Arbeitsmappe gespeichert wird, da sonst das VB-Projekt nicht gespeichert werden kann.