Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Laufzeit Fehler "1004" beim Schließen
#1
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
Antworten Top
#2
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"
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#3
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"
Gruß Atilla
Antworten Top
#4
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

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#5
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.
Gruß Atilla
Antworten Top
#6
Hi Atilla,

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

VG
Patrick
Antworten Top
#7
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
Antworten Top
#8
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.
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste