Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Wolfgang,
aber jetzt:
Code:
Sub Wolfgang()
Dim sFilter As String, Datei As String, Speichern
Datei = ActiveSheet.Range("DatName") & ".xlsm"
If Datei = "" Then MsgBox "Kein Eintrag in Zelle " & ActiveSheet.Range("DatName").Address
sFilter = "Excel Files (*.xlsm), *.xlsm"
Speichern = Application.GetSaveAsFilename(Datei, sFilter)
If Speichern <> False Then
ActiveWorkbook.SaveAs Filename:=Speichern, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 14.05.2017
Version(en): MS Office Prof. Plus 2016_32-Bit
02.09.2018, 09:22
(Dieser Beitrag wurde zuletzt bearbeitet: 02.09.2018, 09:24 von hddiesel.)
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 25.01.2015
Version(en): 2016
Hallo ihr Lieben
Vielen Dank für eure Hilfe.
Das war mal wieder ein Lehre für mich
Liebe Grüße aus Bremen
Wolfgang
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo André,
(02.09.2018, 10: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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Uwe,
für die Vorbelegung des ...FileSaveAs… Dialogs ja.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo André,
jetzt, da Du sagst, dass es um den Dialog geht... Alles klar, danke.
Gruß Uwe