AW: Speichername und Verzeichnis
21.11.2022 11:12:33
Marcel
Hey,
ich dachte damit ist es erledigt, aber wie immer kommt doch dann noch ein Problem auf. Ich habe nun folgendes Makro für Speichern+Schließen.
Option Explicit
Private Declare PtrSafe
Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Sub Datei_zwischenspeichern()
Dim sPfad As String
Dim sName As String
sPfad = "F:\testx\" & Format(Date, "yyyy") & "\" & Format(Date, "yyyy_mm") & "\"
If Range("D4") = vbNullString Then MsgBox "Nummer fehlt", vbCritical, "Abbruch": Exit Sub
sName = "XXX_" & Range("D4").Text
If Dir(sPfad & sName & ".xlsm") "" Then
MsgBox "Schon vorhanden"
Exit Sub
Else
If MakeSureDirectoryPathExists(sPfad) = 0 Then
MsgBox "Der Ordner " & sPfad & " konnte nicht angelegt werden!", vbCritical, "Ordner anlegen"
End If
ActiveWorkbook.SaveCopyAs sPfad & sName & ".xlsm"
MsgBox ("Datei wurde erfolgreich zwischengespeichert.")
End If
ActiveWorkbook.Close savechanges:=False
End Sub
Folgender Hintergrund: Die Vorlage-Datei wird schreibgeschützt geöffnet, einige Werte eingetragen und über das obige Makro (danke nochmal) perfekt benannt und abgelegt. Die Vorlage bleibt damit geschützt und unverändert. Die erstellte Kopie wird später nochmal geöffnet, um weiteren Inhalt einzutragen. An der Stelle versagt dann natürlich das Makro, da die Datei bereits vorhanden ist. Ich würde hier gerne zulassen dass die Datei überschrieben wird. Aber nur diese Datei mit diesem Namen damit nicht fälschlicherweise eine Datei zuvor (Unterschied nur in der laufenden Nr.) überschrieben wird. Hast du/ihr eine Idee, wie ich das realisieren könnte?