Hallo ihr Beiden,
Hier mal meine erste Idee wie man das ganze umsetzen könnte. Der Code kommt in das Modul "DieseArbeitsmappe"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Historie")
lzei = .Cells(.Rows.Count, 1).End(xlUp).Row
If ThisWorkbook.Name Like "*_" & .Cells(lzei, 1) & ".xl*" Then
MsgBox "Datei wurde nicht gespeichert! Legen Sie zunächst eine neue Version an.", vbCritical
Cancel = True
Else
n = Replace(ThisWorkbook.Name, .Cells(lzei - 1, 1), .Cells(lzei, 1))
Application.EnableEvents = False
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & n
Cancel = True
Application.EnableEvents = True
MsgBox "Datei wurde in der neuen Version " & .Cells(lzei, 1) & " gespeichert.", vbInformation
End If
End With
End Sub
Vorausseztung ist, dass die Version in Spalte A als Text formatiert ist, du also z.B. 0001 eingibst.
Wenn jedoch nur du Änderungen an der Version vornehmen willst empfehle ich stattdessen eine Mustervorlage *.xltx zu erstellen. Wenn die jemand außer dir öffnet wird automatisch eine neue Datei erzeugt, die Vorlage selbst jedoch nicht verändert.
Gruß Mr. K.
|