Добрый вечер. Подскажите пожалуйста, нашел вот здесь как делать резервную копию в опредленный путь после закрытия файла. На пустом файле все получается, но в моем уже имеется код и видно что-то не так объединил (не очень это понимаю) и данный макрос не срабатывает.
И еще подскажите можно ли сделать так, чтобы резервная копия создавалась при закрытии файла только когда в файл (на любой из листов) были внесены изменения? Если просто открыл, посмотрел и закрыл копия не создавалась
Alexander1989, возможно в корень диска не хочет сохранять, у меня так. Ну и слэш лишний убрал. Добавил сохранение копии только если файл после изменений не сохранён. Ну т.е. как просили
Цитата
Alexander1989 написал: Если просто открыл, посмотрел и закрыл копия не создавалась
написал: Alexander1989 , возможно в корень диска не хочет сохранять, у меня так. Ну и слэш лишний убрал.Добавил сохранение копии только если файл после изменений не сохранён. Ну т.е. как просили
Спасибо Вам за помощь. Но у меня почему-то наоборот выходит. Если вношу изменения, то при выходе из программы нажимаю "не сохранять", то он создает копию. В этом случае не нужно. Может неправильно выразился в первом сообщении. Я хотел чтобы сохранялась копия только когда в файл внесли изменения и при закрытии нажимаю "Сохранить". Во всех остальных случаях (открыл-посмотрел и открыл-написал, но выбрал "не сохранить") копию делать не надо. Если подскажите как так реализовать, то буду благодарен.
И еще момент, можно ли сделать, чтобы файл сохранял в две разные папки одновременно?
написал: Alexander1989 , возможно в корень диска не хочет сохранять, у меня так. Ну и слэш лишний убрал.Добавил сохранение копии только если файл после изменений не сохранён. Ну т.е. как просили
Попытался поработать с файлом на работе, но ничего не выходит. Не сохраняет копию и даже не выводит сообщение о том, что папки не существует (если специально задать несуществующую)
При сохранении будет создаваться рез. копия, при условии, что в каталоге файла есть подпапка BackUp. Положить в модуль книги.
Скрытый текст
Код
Private Declare PtrSafe Function CreateHardLink Lib "kernel32.dll" Alias "CreateHardLinkA" ( _
ByVal lpFileName As String, _
ByVal lpExistingFileName As String, _
Optional ByVal lpSecurityAttributes As LongPtr) As Long
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ThisWorkbook
Stop
If .Saved Then
Cancel = True
Else
Dim HrdLnkPt$
HrdLnkPt = .Path & "\BackUp\" & _
Mid$(.Name, 1, Len(.Name) - 5) & Format$(Now, "_yyyymmdd_hhmmss") & ".xlsm"
If CreateHardLink(HrdLnkPt, .FullName) = 0 Then
Debug.Print "неудачная попытка сохранения рез. копии" & vbCr & HrdLnkPt
End If
End If
End With
End Sub