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 SaveAs Syntax Dateiname Datum parametrisiert
#1
Guten Abend zusammen!

In (m)einem Makro steht die Zeile

ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname.xlsx",

Mein Ziel ist nun, daraus

ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname%aktuellesDatum%.xlsx",

zu machen. Aktuelles Datum soll dabei immer das tagesaktuelle Datum im Format dd.mm.yyyy sein.


Vielen Dank im Voraus!
Torsten
LG Torsten
Antworten Top
#2
Hallo Torsten,

Zitat:ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname.xlsx",

Mein Ziel ist nun, daraus

ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname%aktuellesDatum%.xlsx",

wenn Du Deine Datei wirklich als *.xlsx gespeichert hast, hast Du gar kein Makro mehr drin
weil Excel sie beim Speichern automatisch rausgeschmissen hat.
Dateien mit Makros müssen zwingend als *.xlsm oder *.xlsb gespeichert werden.

Um Deine Frage vernünftig beantworten zu können solltest Du besser das ganze Makro und nicht
nur eine einsame Codezeile zeigen. Deklarationen gehören z.B. nämlich ebenfalls zu dieser Zeile.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Torsten
Antworten Top
#3
Hallo Torsten,

versuchs mal so (unter der Anmerkung von Peter)

Code:
ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname" & Format(Date,"dd.mm.yyyy") & ".xlsb",
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Torsten
Antworten Top
#4
Hallöchen,

Nur mal ein Hinweis.
Es ist nicht gesagt, dass hier das ActiveWorkbook auch das Makro enthält. Entsprechend kann die Datei auch gerne als xlsx gespeichert werden, wenn der Code noch gebraucht wird und anderswo steht.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Torsten
Antworten Top
#5
Hallo Ande,

Zitat:Nur mal ein Hinweis. 

Es ist nicht gesagt, dass hier das ActiveWorkbook auch das Makro enthält. Entsprechend kann die Datei auch
gerne als xlsx gespeichert werden, wenn der Code noch gebraucht wird und anderswo steht.

das weiß ich, und wenn es sinnvoll ist, programmiere ich auch so.
Ich halte es zwar nicht für unmöglich. denke aber eher nicht, das
soetwas beim Fragesteller vorliegen könnte.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Torsten
Antworten Top
#6
Moin auch von mir!
Die Übergabe der Dateiendung an den String erachte ich als überflüssig.
Wichtiger ist für mich die Angabe des FileFormat:=
Code:
ActiveWorkbook.SaveAs "Pfad\Dateiname" & Format(Date,"dd.mm.yyyy"), xlOpenXMLWorkbook

Statt xlOpenXMLWorkbook (.xlsx) nimmt man [b]xlOpenXMLWorkbookMacroEnabled[/b] (.xlsm), wenn die Makros erhalten bleiben sollen.

Begründung:
Nur eine (evtl. falsche) Dateiendung anzugeben, führt zu einer Fehlermeldung.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Torsten
Antworten Top
#7
Vielen herzlichen Dank für die Hilfe!

So sieht das Makro nun final aus:

Sub RSU()

'
' RSU Makro
' Register_speichern_unter
' ' REM ActiveWorkbook.SaveAs "Pfad\Dateiname" & Format(Date,"dd.mm.yyyy"), xlOpenXMLWorkbook

'
    Sheets(Array("Zahlen", "andere Zahlen")).Select
    Sheets("andere Zahlen").Activate
    Sheets(Array("Zahlen", "andere Zahlen")).Copy
       ActiveWorkbook.SaveAs "C:\Users\NAME\Documents\RSU " & Format(Date, "dd.mm.yy") & ".xlsx", xlOpenXMLWorkbook, CreateBackup:=False
        
        
End Sub

Aus einer umfangreichen Datei werden definierte Register als Tagesbericht zusammengefasst. Das Zieldokument muss das Makro daher nicht mehr enthalten.

Eine Frage dazu habe ich noch: Das Makro hinterlässt die Ursprungsdatei im Gruppenmodus. Wie kann ich ihm das noch abgegewöhnen?
LG Torsten
Antworten Top
#8
Hallo Torsten,

(29.10.2016, 16:41)Torsten schrieb: Eine Frage dazu habe ich noch: Das Makro hinterlässt die Ursprungsdatei im Gruppenmodus. Wie kann ich ihm das noch abgegewöhnen?

Indem Du es ihm gar nicht erst angewöhnst! Wink
Sub RSU()
 Sheets(Array("Zahlen", "andere Zahlen")).Copy
 ActiveWorkbook.SaveAs "C:\Users\NAME\Documents\RSU " & Format(Date, "dd.mm.yy") & ".xlsx", xlOpenXMLWorkbook, CreateBackup:=False
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Torsten
Antworten Top
#9
Perfekt, Dank auch an Dich, Uwe!
LG Torsten
Antworten Top


Gehe zu:


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