Clever-Excel-Forum

Normale Version: VBA Laufzeit Fehler "1004" beim Schließen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Mahlzeit an die Gemeinde,

ich habe mir einen Makro Button erstellt, welcher den Dateinamen aus dem Feld "F2" übernimmt und dann in einem Pfad abspeichert.

Sub Auto_Close()

ActiveWorkbook.SaveAs "W:\P A T R I C K\Kalkulationen\" & Range("F2").Value

End Sub


Soweit klappt das auch :).

Beim Beenden der Excel taucht allerdings immer der Laufzeitfehler 1004 (Die Methode 'SaveAs' für das Objekt '_Workbook' ist fehlgeschlagen) auf, welchen in gerade nicht so einordnen kann. 

Ich denke mir fehlt noch ein Befehl im Makro - Nur welcher ist es :)?

Vielen Dank für Eure Hilfe im Voraus!!

VG
Patrick
Hallo Patrick,

wo hast du denn das antiquierte Auto_close her? Das ist doch aus steinalten Zeiten und sollte eigentlich unter Excel 2013 garnicht mehr funktionieren!

Die Sub heißt heute "Sub Workbook_BeforeClose(Cancel As Boolean)" und der Laufzeitfehler 1004 weist auf einen Syntaxfehler hin und nicht auf ein fehlendes Element in deinem Makro. Sieh dir noch einmal genau an, wie die Syntax zur Funktion SaveAs lautet!

Versuche es einmal so:
ActiveWorkbook.SaveAs Filename:="W:\P A T R I C K\Kalkulationen\" & Range("F2") & ".xlsx"
Hallo,

was steht denn in F2?
Der Dateiname muss eine Endung haben.

Entweder steht schon z.B.: "Datei.xlsx" in der Zelle oder Du hängst das Dateiformet noch in Deiner Codezeile dran:

ActiveWorkbook.SaveAs "W:\P A T R I C K\Kalkulationen\" & Range("F2").Value & "xlsx"
Hallo Atilla,

an diesem Problem bin ich jetzt schon lange dran. Eigentlich, reine theorie, müsste es so klappen ....


Zitat:Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Name As String
Name = Range("F2").Value
    ActiveWorkbook.SaveAs Filename:="c:\P_A_T_R_I_C_K\Kalkulationen\" & Name & ".xlsm"
End Sub
das Makro will aber immer die Arbeitsmappe1 speichern ....


Wäre nett, wenn du mir auf die Sprünge hilfst. Ich muss ja wieder alles neu erlernen.

Gruß
Marcus
Hallo marcus,

der TE nutzt ein Button zum Ausführen des Codes.
Es ist kein Code für eine Ereignisroutine, wie es Glausius fälschlich annimmt.

Du bringst jetzt auch eine Ereignisroutine ins Spiel. Das hat nichts mit dem Vorhaben des TE zu tun.
Das Ereignis Before_Save tritt ein, wenn Speichern der Arbeitsmappe angestoßen wird.
Also ist der von Dir geschilderte Fall so im Ablauf richtig und vorgesehen.

Man kann dort sicher auch auf Speichern unter umschwenken, aber dass wäre jetzt eine ganz andere Geschichte.
Google mal nach den Begriffen und lies bei den Support Seiten von Microsoft nach.
Hi Atilla,

in F2 steht unsere Artikelnummer, welche als Dateinamen herhalten soll :).

VG
Patrick
Hallo Patrick,

benenne das Makro um, wenn es per Button aufgerufen werden soll. Sonst wird es immer beim Schließen der Datei gestartet. Günter hat das ja auch schon angesprochen.

Gruß Uwe
Hallo,

wie ich schon schrieb, müsstest du das Format (Endung) der Datei noch mitgeben, so wie ich es gezeigt hab.
Ein anderer Name für die Prozedur wäre sicher auch besser.