Clever-Excel-Forum

Normale Version: Inhalt Zellname = Dateiname
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich möchte gerne den Inhalt einer Zelle als Dateiname automatisch generieren möglichst noch mit Pfadangabe wo diese gespeichert werden soll.

Gefunden habe ich

Private Sub SpeichernUnter()

Dim fn As String
'Dateiname ermitteln und prüfen:
fn = Worksheets("Kalkulation").Range("B2")
If Trim(fn) = "" Or _
    InStr(fn, ".") > 0 Or _
    InStr(fn, "\") > 0 Or _
    InStr(fn, "/") > 0 Or _
    InStr(fn, "<") > 0 Or _
    InStr(fn, ">") > 0 Or _
    InStr(fn, "[") > 0 Or _
    InStr(fn, "]") > 0 Or _

    InStr(fn, ":") > 0 Or _
    InStr(fn, "|") > 0 Or _
    InStr(fn, "*") > 0 Or _
    InStr(fn, "?") > 0 Then
        MsgBox "Unzulässiger Dateiname!" & vbLf & "Datei wurde nicht gespeichert!", vbCritical
        Exit Sub
End If
Application.EnableEvents = False
Application.DisplayAlerts = False
On Error Resume Next
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & fn & ".xlm"
If Err.Number > 0 Then MsgBox Err.Description, vbCritical, "Fehler " & Err.Number
On Error GoTo 0
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub


Leider funzt hier bei klick auf  speichern unter nix - Dateiname ist immer noch der Urspungsname
Excel 2016 habe ich im Einsatz - der Code ist wohl aus 2007.
Hast du deinen Dateinamen denn auch in Blatt Kalkulation in Zelle B2 stehen? Sonst ist Essig...
Ich schätze, dass er eine neue Mappe geöffnet hat und thisworkbook.path ein leer zurückgibt.
Zelle ist als Text definiert

Text ist enthalten
beim klicken auf Icon "speichern unter" öffnet sich das Dialogfeld zum Speichen aber als Dateiname ist immer noch der ursprüngliche Name der Mappe enthalten.

Ich vermute eher, dass ich in den Optionen VBA / Makros noch irgendwo was aktivieren muss.

Dateiformat ist auch  .XLSM


?????
Der gewählte Code passt nicht zu Deinem Vorhaben.
Der hier gezeigte Code öffnet bestimmt nicht den Speichern-unter-Dialog. Da passt was nicht.