VBA: Dateiname aus Zelle erstellen

Bild

Betrifft: VBA: Dateiname aus Zelle erstellen
von: Niko
Geschrieben am: 30.09.2015 21:48:19

Guten Abend,
ich habe mir in Excel 2010 ein Makro erstellt, das mir den Dateinamen aus einer bestimmten Zelle generiert:

Sub SaveAs()
savedFile = Application.GetSaveAsFilename(InitialFileName:="N:\A\B\C\" & [C1050], fileFilter:=" _
Excel-Arbeitsmappe, *.xlsm")
If savedFile <> "Falsch" Then ActiveWorkbook.SaveAs savedFile
End Sub
Das klappt auch sehr gut. Leider funktioniert das Makro mit Excel 2013 überhaupt nicht. Wo ist der Fehler?
Vielen Dank!
Niko

Bild

Betrifft: AW: Warum über GetSaveAsFilename?
von: Michael (migre)
Geschrieben am: 01.10.2015 14:12:45
Hallo Niko!
Hat es einen Grund, warum Du das über GetSaveAsFilename machst? Du kannst Dir den gewünschten Dateinamen ja gleich in einer Variablen zusammenfassen und dann direkt an ThisWorkbook.SaveAs übergeben; dort ist dann auch gleich der Ort um das gewünschte Format anzugeben (.xlsm = Arbeitsmappe mit Makros = Typ 52).

Sub SpeichernAls()
    Dim Dname As String
    
    Dname = "N:\A\B\C\" & Worksheets("Tabelle1").Range("C1050").Value
    ThisWorkbook.SaveAs Filename:=Dname, FileFormat:=52
End Sub
Tabellenblattname musst Du ggf. anpassen. Was Du mit dem If savedFile <> "Falsch" bezweckst ist mir nicht klar; da müsstest Du noch genauere Infos geben.
Meine Ausführungen beziehen sich zwar bei mir auf Office 2010, aber ich glaube stark, dass dies in 2013 auch so funktioniert.
LG
Michael

Bild

Betrifft: AW: VBA: Dateiname aus Zelle erstellen
von: Daniel
Geschrieben am: 01.10.2015 14:23:33
Hi
seit Excel 2007 gibt es keinen "Standard"-Excel-Dateityp mehr, welchen die SaveAs-Funktion als Default-Wert einsetzen könnte, sondern vier verschiedene (xlsx, xlsm, xlsb, xls).
daher ist der Parameter FileFormat nicht mehr optional, sondern man muss ihn immer angeben.

If savedFile <> "Falsch" Then ActiveWorkbook.SaveAs savedFile, fileformat:=xxx
anstelle xxx bitte den passenden Wert für xlsm-dateien einfügen, den kannst du in der Hilfe nachlesen oder mit Hilfe des Recorders rausfinden, ich kenn den auch nicht auswendig und suchen kannst du selbst..
ausserdem sollte man im Dateinamen die Dateierweiterung weglassen (das ".xlsm" am Ende)
Excel fügt die Dateierweiterung automatisch passend zum gewählten Dateiformat hinzu.
Die Dateierweiterung im Dateinamen hat keinen Einfluss auf den verwendeten Dateityp, dieser wird allein über das FileFormat bestimmt.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA: Dateiname aus Zelle erstellen"