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

ActiveWorkbook.saveAs - Problem: Speichert nicht

Forumthread: ActiveWorkbook.saveAs - Problem: Speichert nicht

ActiveWorkbook.saveAs - Problem: Speichert nicht
22.01.2009 15:31:00
Manfred
Hallo beisammen,
ich habe ein sehr kurioses Problem. Und zwar will ich im Workbook_BeforeSave Handler meine Datei mit einem definierten Dateinamen speichern. Das Problem ist dass Excel die saveAs Methode scheinbar ignoriert? Die Datei wird also nicht mit dem angegebenen Dateinamen gespeichert. Genau genommen wird sie gar nicht gespeichert. Hat jemand eine Idee warum (oder warum nicht)?
anbei der code:
ActiveWorkbook.Saved = False
Datei = Application.GetSaveAsFilename("test.xls")
If Datei "Falsch" Then
ActiveWorkbook.saveAs Filename:=Datei, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End If
Viele Grüße
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ActiveWorkbook.saveAs - Problem: Speichert nicht
22.01.2009 16:04:00
Erich
Hallo Manfred,
vielleicht hilft dir schon das hier: https://www.herber.de/forum/archiv/700to704/t700443.htm#700584
Besonders "Cancel" und "EnableEvents" könnten wichtig sein.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: ActiveWorkbook.saveAs - Problem: Speichert nicht
22.01.2009 16:39:36
Manfred
Hi,
also ich habe die Zeilen aus dem Anderen Thread ausprobiert, leider ohne Erfolg. der Compiler geht über die .saveAs drüber als ob sie gar nicht da stünde...
Viele Grüße
AW: ActiveWorkbook.saveAs - Problem: Speichert nicht
23.01.2009 14:22:30
fcs
Hallo Manfred,
folgende Anpassung deines Codes hab ich getestet und funktioniert bei mir unter Excel 2003
Gruß
Franz

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Datei As Variant
Cancel = True
Application.EnableEvents = False
Datei = Application.GetSaveAsFilename("test.xls")
If Datei  False Then
ActiveWorkbook.SaveAs Filename:=Datei, addtomru:=True
End If
Application.EnableEvents = True
End Sub


Anzeige
AW: ActiveWorkbook.saveAs - Problem: Speichert nicht
23.01.2009 19:33:13
Manfred
Hi,
danke für die Hinweise, ich konnte das problem nun lösen. Des Rätzels Lösung ist dass ich im Code noch ein paar .saveAs eingebaut habe, diese aber nicht mit den application.enableevents umrahmt habe.
Viele Grüße und Danke
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveWorkbook.saveAs: Probleme beim Speichern lösen


Schritt-für-Schritt-Anleitung

Um das Problem mit der ActiveWorkbook.saveAs Methode zu lösen, folge diesen Schritten:

  1. Workbook_BeforeSave Event verwenden: Stelle sicher, dass du das Workbook_BeforeSave Event korrekt implementierst. Hier ein Beispiel für den Code:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       Dim Datei As Variant
       Cancel = True
       Application.EnableEvents = False
       Datei = Application.GetSaveAsFilename("test.xls")
       If Datei <> False Then
           ActiveWorkbook.SaveAs Filename:=Datei, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
       End If
       Application.EnableEvents = True
    End Sub
  2. Dateinamen anfordern: Nutze Application.GetSaveAsFilename, um den Benutzer um einen Dateinamen zu bitten.

  3. Aktivieren von Events: Setze Application.EnableEvents auf False, bevor du speicherst, und stelle sicher, dass du es wieder auf True setzt, um keine weiteren Probleme zu verursachen.

  4. Fehlerbehandlung: Achte darauf, dass die ActiveWorkbook.saveAs Methode nicht ignoriert wird. Überprüfe, ob die Datei nicht als "Falsch" zurückgegeben wird.


Häufige Fehler und Lösungen

  • ActiveWorkbook.saveAs nicht funktioniert: Wenn ActiveWorkbook.saveAs scheinbar ignoriert wird, prüfe, ob Application.EnableEvents korrekt gesetzt ist. Wenn das Event deaktiviert bleibt, wird der Speicherbefehl möglicherweise nicht ausgeführt.

  • Speichern wird abgebrochen: Achte darauf, dass Cancel auf True gesetzt ist, bevor du die saveAs Methode aufrufst. Dies kann dazu führen, dass Excel das Speichern abbricht.

  • Falscher Dateiname: Stelle sicher, dass der Benutzer einen gültigen Dateinamen auswählt. Überprüfe die Rückgabe von GetSaveAsFilename.


Alternative Methoden

Wenn die ActiveWorkbook.saveAs Methode nicht funktioniert, kannst du folgende Alternativen in Betracht ziehen:

  1. thisworkbook.saveas verwenden: Statt ActiveWorkbook kannst du auch ThisWorkbook verwenden, um das aktuelle Workbook direkt zu speichern:

    ThisWorkbook.SaveAs Filename:=Datei, FileFormat:=xlNormal
  2. Eine einfache .save Methode: Wenn du nur das aktuelle Workbook speichern möchtest, kannst du die .Save Methode verwenden, ohne den Dateinamen anzugeben.

  3. Excel VBA Funktionen: Nutze Funktionen wie xlbook.saveas, um die Datei zu speichern.


Praktische Beispiele

Hier sind einige Beispiele zur Verwendung von ActiveWorkbook.saveAs:

  1. Speichern unter einem bestimmten Namen:

    ActiveWorkbook.SaveAs Filename:="C:\MeinOrdner\MeinWorkbook.xls", FileFormat:=xlWorkbookNormal
  2. Speichern mit Passwort:

    ActiveWorkbook.SaveAs Filename:="C:\MeinOrdner\MeinWorkbook.xls", Password:="MeinPasswort"
  3. Speichern als Backup:

    ActiveWorkbook.SaveAs Filename:="C:\MeinOrdner\MeinWorkbook.xls", CreateBackup:=True

Tipps für Profis

  • Verwende ActiveWorkbook.Saved = False, um Excel zu zwingen, die Datei als nicht gespeichert zu markieren. Dies kann hilfreich sein, um sicherzustellen, dass die saveAs Methode aufgerufen wird.

  • Achte darauf, dass du den richtigen FileFormat angibst, insbesondere wenn du zwischen verschiedenen Excel-Versionen wechselst.

  • Schreibe immer eine Fehlerbehandlung in deinen Code, um Problemen beim Speichern vorzubeugen.


FAQ: Häufige Fragen

1. Warum wird meine Datei nicht gespeichert?
Die ActiveWorkbook.saveAs Methode könnte ignoriert werden, wenn Application.EnableEvents nicht korrekt gesetzt ist oder wenn der Dateiname ungültig ist.

2. Wie kann ich sicherstellen, dass mein Code immer funktioniert?
Achte darauf, die Cancel-Variable richtig zu setzen und Application.EnableEvents vor und nach dem Speichern zu verwalten.

3. Welches Excel-Version sollte ich verwenden?
Die hier beschriebenen Methoden funktionieren in der Regel ab Excel 2003. Stelle sicher, dass du die richtige Version verwendest.

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