Ich habe eine schreibgeschützte Datei, die als eine Art Eingabemaske dient.
Beim allerersten Speichern und nur dann, soll der Name aus den Werten dreier Zellen gebastelt werden (DP1, DQ1, DR1). Im Forum habe ich mich belesen und auch herausgefunden, wie das geht.
In "ThisWorkbook" habe ich meine Lösung in eine BeforeSave Anweisung geschrieben (s.u., gekürzte Darstellung ohne Deklaration).
Mein Problem ist, dass ich insgesamt wenig Ahnung und schon gar keine von der Ablaufsteuerung habe.
Beim Speichern erscheint nun, wie zu erwarten, der Hinweis, dass ein anderer Speichername gewählt werden muss und dann kommt tatsächlich der gewünschte, aus den o.g. Zellen generierte Namensvorschlag.
Die Datei lässt sich aber so nicht speichern. Nach Abrechen kommt der "Kopie von ..." Vorschlag.
Kann mir jemand weiterhelfen ?
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If wks1.Cells(5, 59) = 1 Then
'Wert der Zelle ist primär 0. Dient zur Prüfung, ob die Datei jemals gespeichert wurde
GoTo schongespeichert:
End If
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ("TP-" & wks1.Range("DP1") & "-" & wks1.Range("DQ1") & _
"-" & wks1.Range("DR1") & ".xlsm")
Application.EnableEvents = True
wks1.Cells(5, 59) = 1
schongespeichert:
End Sub
Vielen Dank an diejenigen, die sich damit auseinandersetzen mögen.
Bernhard