Clever-Excel-Forum

Normale Version: VBA unter Excel 2016
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
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
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 Idea 

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. Blush

Gruß Uwe
Seiten: 1 2 3