Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateinamen aus Zellen, nur bei erster Speicherung

Dateinamen aus Zellen, nur bei erster Speicherung
23.03.2019 18:24:05
Bernhard
Liebe VBA-Experten,
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
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen aus Zellen, nur bei erster Speicherung
23.03.2019 19:25:11
AlterDresdner
Hallo Bernhard,
ich denke, so ist es übersichtlicher:
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Newname, wks1
Set wks1 = ThisWorkbook.Sheets(1) 'habe ich mal so angenommen
If wks1.Cells(5, 59) = 1 Then Exit Sub
'Wert der Zelle ist primär 0. Dient zur Prüfung, ob die Datei jemals gespeichert wurde
Newname = "TP-" & wks1.Range("DP1") & "-" & wks1.Range("DQ1") & "-" & _
wks1.Range("DR1") & ".xlsm"
Newname = Application.GetSaveAsFilename(Newname, _
"Microsoft-Exceldateien mit Makros (*.xlsm), *.xlsm", 2)
Application.EnableEvents = False
If TypeName(Newname) = "String" Then
wks1.Cells(5, 59) = 1
ThisWorkbook.SaveAs Newname
Else 'Abbrechen geklickt
Cancel = True
End If
Application.EnableEvents = True
End Sub

Gruß der Martin
Anzeige
AW: Dateinamen aus Zellen, nur bei erster Speicherung
23.03.2019 23:19:00
Bernhard
Hallo Martin,
das werde ich ausprobieren. Die neuen Befehle muss ich nachlesen, damit ich das auch gedanklich durchdringe.
Vielen Dank !
Gruß Bernhard
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige