Hallo,
leider plagt mich immer noch das Problem der falschen Meldung beim Speichern einer Datei ohne, daß ich bislang hinter die Lösung gelangt wäre.
Das Ziel ist, daß ich die Meldung "File exist - Overwrite ..." auch wirklich nur dann erhalte wenn die Datei tatsächlich existiert und überschrieben werden würde.
Im aktuellen Workflow ist das jedoch nie der Fall (zumindest kann ich mir derzeit keinen vorstellen).
Entweder wird im Dateinamen die Versionnummer (sVersion) hochgezählt oder der Dateiname ändert sich an einer anderen Stelle (sDateMid).
Jedenfalls ist er bei jedem Speichern immer ein anderer und von daher sollte es die Meldung erst garnicht geben.
Anhang anzeigen 62875
Die einzige Ausnahme und da wird's etwas kniffliger ist, wenn die Datei von einer anderen aufgerufen und geändert wurde, dann muß sie mit oder ohne Rückfrage überschrieben werden!
Hier erstmal der Code für den Bereich "ohne Ausnahme"
ThisWorkbook
frmSave
Im Ausnahmefall (die o.g Datei wird durch eine andere (Centralized.xlsm) aufgerufen) liegt das Problem wohl hier:
sWb2Name ist die Datei aus Zeile 5\6
An der Stelle kommt mir aber dann die frmSave in die Quere, die ich aber nicht brauchen kann, da in dieser Prozess komplett automatisiert ist und wie gesagt die Datei in jedem Fall überschrieben werden soll.
Gruß
_opiWahn_
leider plagt mich immer noch das Problem der falschen Meldung beim Speichern einer Datei ohne, daß ich bislang hinter die Lösung gelangt wäre.
Das Ziel ist, daß ich die Meldung "File exist - Overwrite ..." auch wirklich nur dann erhalte wenn die Datei tatsächlich existiert und überschrieben werden würde.
Im aktuellen Workflow ist das jedoch nie der Fall (zumindest kann ich mir derzeit keinen vorstellen).
Entweder wird im Dateinamen die Versionnummer (sVersion) hochgezählt oder der Dateiname ändert sich an einer anderen Stelle (sDateMid).
Jedenfalls ist er bei jedem Speichern immer ein anderer und von daher sollte es die Meldung erst garnicht geben.
Anhang anzeigen 62875
Die einzige Ausnahme und da wird's etwas kniffliger ist, wenn die Datei von einer anderen aufgerufen und geändert wurde, dann muß sie mit oder ohne Rückfrage überschrieben werden!
Hier erstmal der Code für den Bereich "ohne Ausnahme"
ThisWorkbook
Code:
Option Explicit
Public alreadySaved As Boolean
Private Sub Workbook_Open()
MyTag = "Enable"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If alreadySaved = False Then
Cancel = True
frmSave.Show
Else
If MsgBox("File already exist - Overwrite?", vbExclamation + vbYesNo, "Caution") = vbNo Then
Cancel = True
End If
End If
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ThisWorkbook.Saved = False Then
alreadySaved = False
End If
End Sub
frmSave
Code:
...
Private Sub cmdSave_Click()
ThisWorkbook.alreadySaved = True
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sFileName & sDateMid & " (" & sVersion _
& " " & sInitials & " " & sDateLong_en & ").xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
If ckbReport = True Then
WriteRunReport
MsgBox "ReportFile was written"
End If
Unload frmSave
End Sub
...
Im Ausnahmefall (die o.g Datei wird durch eine andere (Centralized.xlsm) aufgerufen) liegt das Problem wohl hier:
Code:
Workbooks(sWb2Name).Close SaveChanges:=False
sWb2Name ist die Datei aus Zeile 5\6
An der Stelle kommt mir aber dann die frmSave in die Quere, die ich aber nicht brauchen kann, da in dieser Prozess komplett automatisiert ist und wie gesagt die Datei in jedem Fall überschrieben werden soll.
Gruß
_opiWahn_