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

Forumthread: Automatisches Überschreiben beim Speichern

Automatisches Überschreiben beim Speichern
08.03.2006 09:52:11
Carlos
Hallo,
habe eine Frage. Und zwar habe ich ein Makro:

Sub KopieSpeichern()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1.xls", ConflictResolution:=xlLocalSessionChanges
ActiveCell.FormulaR1C1 = "Name:"
Range("B1").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(""DOM "",[Analysetool.xls]Auswertung!R5C2,""_"",""GAP "",[Analysetool.xls]Auswertung!R6C2,""_"",""PHASE "",Analysetool.xls!Phase,""_"",""INDIKATOR "",LEFT([Analysetool.xls]Auswertung!R23C1,7),""_ "",""Results "",Analysetool.xls!Ergebnisse)"
Windows("Mappe1").Activate
ActiveWorkbook.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\" & Sheets("Tabelle1").Range("B1").Value & ".xls"
ActiveWorkbook.Close SaveChanges:=True
End Sub

In diesem Makro wird eine neue arbeitsmappe angelegt und unter dem Namen Mappe1 zwischengespeichert, damit ich im Anschluss wieder darauf zugreifen kann.
Führe ich das Makro nun automatisch aus werde ich immer gefragt, ob ich die bereits vorhandene Datei wirklich überschreiben will. Gibt es eine Möglichkeit diese Abfrage zu unterdrücken und die vorhandene Datei einfach zu überschreiben?
Danke für die Hilfe.
Viele Grüße
*Carlos
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Automatisches Überschreiben beim Speichern
08.03.2006 09:55:54
u_
Hallo,

Sub KopieSpeichern()
Workbooks.Add
Application.Displayalerts=False
ActiveWorkbook.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1.xls", ConflictResolution:=xlLocalSessionChanges
Application.Displayalerts=True
ActiveCell.FormulaR1C1 = "Name:"
Range("B1").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(""DOM "",[Analysetool.xls]Auswertung!R5C2,""_"",""GAP "",[Analysetool.xls]Auswertung!R6C2,""_"",""PHASE "",Analysetool.xls!Phase,""_"",""INDIKATOR "",LEFT([Analysetool.xls]Auswertung!R23C1,7),""_ "",""Results "",Analysetool.xls!Ergebnisse)"
Windows("Mappe1").Activate
ActiveWorkbook.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\" & Sheets("Tabelle1").Range("B1").Value & ".xls"
ActiveWorkbook.Close SaveChanges:=True
End Sub

Gruß
Geist ist geil!
Anzeige
Beantwortet
08.03.2006 10:01:06
Carlos
Hi vielen Dank,
genau das was ich gesucht habe... wie nah die Lösung manchmal ist..!!!
Schönen Tag noch..
Gruß *Carlos
;
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Überschreiben beim Speichern in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei ohne Nachfrage zu überschreiben, kannst Du die Application.DisplayAlerts-Eigenschaft in Deinem VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Kopiere folgenden Code:

    Sub KopieSpeichern()
        Workbooks.Add
        Application.DisplayAlerts = False ' Deaktiviere Warnmeldungen
        ActiveWorkbook.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1.xls", ConflictResolution:=xlLocalSessionChanges
        Application.DisplayAlerts = True ' Aktiviere Warnmeldungen wieder
        ActiveCell.FormulaR1C1 = "Name:"
        Range("B1").Select
        ActiveCell.FormulaR1C1 = _
        "=CONCATENATE(""DOM "",[Analysetool.xls]Auswertung!R5C2,""_"",""GAP "",[Analysetool.xls]Auswertung!R6C2,""_"",""PHASE "",Analysetool.xls!Phase,""_"",""INDIKATOR "",LEFT([Analysetool.xls]Auswertung!R23C1,7),""_ "",""Results "",Analysetool.xls!Ergebnisse)"
        Windows("Mappe1").Activate
        ActiveWorkbook.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\" & Sheets("Tabelle1").Range("B1").Value & ".xls"
        ActiveWorkbook.Close SaveChanges:=True
    End Sub
  4. Führe das Makro aus: Drücke F5, um das Makro zu starten.

Mit dieser Methode wird die vorhandene Datei überschrieben, ohne dass eine Nachfrage erscheint.


Häufige Fehler und Lösungen

  • Fehler: Datei nicht gefunden: Stelle sicher, dass der Pfad zur Datei korrekt ist. Überprüfe, ob die Datei existiert und Du die nötigen Berechtigungen hast.
  • Fehler: Makro wird nicht ausgeführt: Überprüfe, ob die Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu "Datei" > "Optionen" > "Sicherheitscenter" > "Einstellungen für das Sicherheitscenter".
  • Warnmeldung erscheint trotzdem: Stelle sicher, dass Application.DisplayAlerts auf False gesetzt ist, bevor Du die Datei speicherst.

Alternative Methoden

Eine andere Möglichkeit, eine Datei ohne Nachfrage zu überschreiben, ist die Verwendung von Workbooks.SaveAs mit dem Parameter Overwrite.

Hier ein Beispiel:

Sub DateiSpeichern()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    ' Speichern und überschreiben
    wb.SaveAs Filename:="U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1.xls", _
              FileFormat:=xlWorkbookNormal, _
              ConflictResolution:=xlLocalSessionChanges
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für das Überschreiben von Dateien:

  1. Kopieren einer Datei und Überschreiben:

    Sub DateiKopierenUndUeberschreiben()
        FileCopy "U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1.xls", "U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1_backup.xls"
    End Sub
  2. Automatisches Speichern ohne Nachfrage:

    Sub AutomatischesSpeichern()
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs "U:\Carlos\Diplomarbeit\Exceldateien\Ergebnisse\Mappe1.xls"
        Application.DisplayAlerts = True
    End Sub

Tipps für Profis

  • Regelmäßige Backups: Bevor Du eine Datei überschreibst, erstelle immer ein Backup, um Datenverlust zu vermeiden.
  • Verwendung von ConflictResolution: Nutze ConflictResolution:=xlLocalSessionChanges, um Konflikte zu lösen, falls mehrere Benutzer an der Datei arbeiten.
  • Automatisches Schließen von Excel: Überlege, Excel Auto Close in Deinem Makro zu integrieren, wenn Du nach dem Speichern keine weiteren Aktionen durchführen möchtest.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Datei immer überschrieben wird?
Verwende Application.DisplayAlerts = False vor dem Speichern und setze es danach wieder auf True.

2. Was passiert, wenn ich eine Datei versehentlich überschreibe?
Die vorherige Version der Datei wird überschrieben. Stelle sicher, dass Du regelmäßig Backups machst, um Datenverlust zu vermeiden.

3. Gibt es eine Möglichkeit, den Benutzer zu warnen, bevor die Datei überschrieben wird?
Ja, Du kannst eine MsgBox verwenden, um den Benutzer zu warnen, bevor Du die Datei speicherst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige