Hallo Wolfgang,
mit der Codeerweiterung von André, sind auch Dateinamen mit Punkt möglich.
Zusätzlich noch 2 kleine Korrekturen.
1. Pfadvorgabe: Im gleichen Pfad, wie diese Datei speichern.
2. Die Zelle "DatName" prüfen, ob sie Leer ist und nicht die Variable Datei, denn Datei ist nie leer.
Code:
Sub DatName_prüfen_speichern()
Dim sFilter As String
Dim Pfad As String
Dim Datei As String
Dim Speichern As Variant
'1. Pfadvorgabe: Im gleichen Pfad, wie diese Datei speichern.
Pfad = ThisWorkbook.Path & "\"
Datei = Pfad & ActiveSheet.Range("DatName") & ".xlsm"
'2. Die Zelle "DatName" prüfen, ob sie Leer ist und nicht die Variable Datei, denn Datei ist nie leer.
If ActiveSheet.Range("DatName") = "" Then _
MsgBox "Keine Dateinamensvorgabe," & vbLf & "in der Zelle " & ActiveSheet.Range("DatName").Address & " (DatName)"
sFilter = "Excel Files (*.xlsm), *.xlsm"
Speichern = Application.GetSaveAsFilename(Datei, sFilter)
If Speichern <> False Then
ActiveWorkbook.SaveAs Filename:=Speichern, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
End Sub
Hallöchen,
mal noch ein Hinweis. Einige Programme sind hinsichtlich der Extentions recht rigoros. Wenn ich z.B. versuche, im Texteditor ein script zu speichern und die Vorgabe *.txt nicht ändere, hab ich hinterher keine *.vbs, sondern ein *.vbs.txt.
Excel ist da wohl etwas anders und hätte gerne eine passende Extention im vorgegebenen Namen.
In Deinem Fall wollest Du eine .xlsm speichern und das sollte dann auch in der Variable Datei berücksichtigt werden.
Willst Du auf gleiche Weise mit dem sFilter xlsx eine Datei ohne Makro erzeugen, müsste die Variable auch xlsx enthalten.
Hast Du im sFilter xlsm und xlsx, kannst Du bei Datei wahlweise eins von beiden verwenden.
Hallo ihr Lieben
Vielen Dank für eure Hilfe.
Das war mal wieder ein Lehre für mich
Liebe Grüße aus Bremen
Wolfgang
Hallo André,
(02.09.2018, 09:35)schauan schrieb: [ -> ]Excel ist da wohl etwas anders und hätte gerne eine passende Extention im vorgegebenen Namen.
In Deinem Fall wollest Du eine .xlsm speichern und das sollte dann auch in der Variable Datei berücksichtigt werden.
ist das wirklich so? Entscheidend/ausreichend ist doch
FileFormat:= ... !?
Gruß Uwe
Hallo Uwe,
für die Vorbelegung des ...FileSaveAs… Dialogs ja.
Hallo André,
jetzt, da Du sagst, dass es um den Dialog geht... Alles klar, danke.
Gruß Uwe