VBA unter Excel 2016
#21
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)
Top
#22
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
[-] Folgende(r) 1 Nutzer sagt Danke an hddiesel für diesen Beitrag:
  • Wolfgang_Virnich
Top
#23
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)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Wolfgang_Virnich
Top
#24
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
Top
#25
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
Top
#26
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)
Top
#27
Hallo André,

jetzt, da Du sagst, dass es um den Dialog geht... Alles klar, danke. Blush

Gruß Uwe
Top


Gehe zu:


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