Registriert seit: 30.01.2020
Version(en): Office 2013
03.02.2020, 13:03
(Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2020, 13:03 von dapat85.)
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
Registriert seit: 11.04.2014
Version(en): 2021
03.02.2020, 13:25
(Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2020, 14:23 von Glausius.)
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"
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
03.02.2020, 14:22
(Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2020, 14:22 von marose67.)
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.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 30.01.2020
Version(en): Office 2013
Hi Atilla,
in F2 steht unsere Artikelnummer, welche als Dateinamen herhalten soll :).
VG
Patrick
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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