Страницы: 1
RSS
сохранение резервной копии
 
Ребята вот еще какой вопрос!  у меня почему то не работает вот этот макрос (не сохраняет копию), что не так подскожите, где что НЕправильно!  
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
   Dim x As String  
   strPath = "N:\ПРОГРАММЫ\РЕЗЕРВНЫЕ КОПИИ"  
   On Error Resume Next  
   x = GetAttr(strPath) And 0  
   If Err = 0 Then ' если путь существует - сохраняем копию книги  
       strDate = Format(Now, "mm/yy")  
       ActiveWorkbook.SaveCopyAs Filename:=FileNameXls  
   Else 'если путь не существует - выводим сообщение  
       MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical  
   End If  
End Sub
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
У Вас какая-то муть... Попробуйте так:  
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)  
   Dim strPath$: strPath = "N:\ПРОГРАММЫ\РЕЗЕРВНЫЕ КОПИИ"  
   With ThisWorkbook  
       If Dir(strPath) <> Empty Then  
           .SaveCopyAs (strPath & "\" & Date & ".xls")  
       Else  
           MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical  
       End If  
   End With  
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
простите теперь, не сохраняет но постоянно выдает ошибку    
"Папка N:\ПРОГРАММЫ\РЕЗЕРВНЫЕ КОПИИ недоступна или не существует!"  
у меня буква N это флешка, а папка сама называется "ПРОГРАММЫ\РЕЗЕРВНЫЕ КОПИИ".  
я так понимаю за папку он берет название "N:\"?
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
если выдает ошибку - значит такой папки нет, просто измените в макросе путь на существующий
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
кстати, не хочу, сказать неправильно, но ваш код не работает, а в моем строки не хватает, я подобное нашел на http://www.planetaexcel.ru/tip.php?aid=72, и все исправило, спасибо, Правда чую придется редактировать, додумывать под себя.  
Спасибо!
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
Если, вы можете подсказать в моем макросе при каждом сохранении, сохраняет еще одну копию и так каждый раз. что можно сделать?  
   
Sub Backup_Active_Workbook()  
   Dim x As String  
   strPath = "c:\TEMP"  
   On Error Resume Next  
   x = GetAttr(strPath) And 0  
   If Err = 0 Then ' если путь существует - сохраняем копию книги  
       strDate = Format(Now, "dd/mm/yy hh-mm")  
       FileNameXls = strPath & "\" & Left(ActiveWorkbook.Name,  _  
            Len(ActiveWorkbook.Name) - 4) & " " & strDate & ".xls"  
       ActiveWorkbook.SaveCopyAs Filename:=FileNameXls  
   Else 'если путь не существует - выводим сообщение  
       MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical  
   End If  
End Sub
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
что именно у Вас не работает ?
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
этот макрос сохраняет файл каждый раз, как его закрываешь, т.е. их накопляется в этой папке, с одной и той же датой, но с разным временем, мне бы хотелось, что бы файл сохранялся бы в один и тот же файл.
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
Улыбнуло, спасибо :)  
Во вложении полностью рабочий макрос, возможно Вы просто не умеете пользоваться Excel'ем?  
Если у Вас есть диск "C" - откройте файл из вложении, закройте его и загляните на диск "С", там Вы увидите копию текущего файла, с названием "сегодняшняя дата", т.е. 11.10.12.xls
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Даже и не знаю как вам доказать что не работает, сфотогр. файл больше 100кб по правилам. может сбросить прокатит, мне бы уж надо, что бы работало боюсь сбоев!
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
у Вас макросы включены ? на диске С не появляется копия файла или как не работает ?
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
макросы включены проверил, на диске "С" вообще нет файла т.к. XL выдает ошибку, XL говорит что нет такой папки, и в своей и в вашей книге не работает! но когда вбиваю свой файл появляется. как объяснить не знаю.
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
ДУМАЮ ВОПРОС РЕШИЛ, НО ВАШ КАК НЕ РАБОТАЛ ТАК И НЕ РАБОТАЕТ, ПРОСТИТЕ, ВЫБОР ОСТАНОВИЛСЯ, ВСЕ ТАКИ НА СВОЕМ И НЕМНОГО ПОДРЕДАКТИРОВАЛ!
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
Такого просто не может быть. Но все равно я за Вас рад!
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
СПОСИБО ВАМ ОГРОМНОЕ ЗА ОТКЛИК!  
С УВАЖЕНИЕМ ДМИТРИЙ!
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
Кстати, у меня как раз на работе так и сохраняет важные файлы на каждое закрытие свою копию. Много файлов, зато ничего не пропадает.  
Ну а это "много" можно при загрузке компа автоматом почистить - вот например такой скрипт.vbs стоит в автозагрузке:  
 
'Удаление файлов XLS если они старше 10 дней    
Dim FSO  
Dim TheFolder, TheFiles, AFile  
 
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set TheFolder = FSO.GetFolder("C:\TMP\Backup\") 'Каталог, откуда удалять  
Set TheFiles = TheFolder.Files  
 
For Each AFile In TheFiles  
   If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" and _    
       DateDiff("d", AFile.DateLastModified, Date) > 10  Then  
       AFile.Delete  
   End If  
Next  
 
 
Можно конечно поставить 30 дней или 90. Или 2 :)  
Ну хоть раз в месяц комп перезагружается? Если нет - то можно изредка вручную запускать, когда вспомните.
 
Игорь, чисто из интереса, у Вас работает мой код?
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Скачал, проверил - работает.  
Может просто у assei запрещено писать в корень C, или он что-то исправил не так, или может у него дата генерится с слэшами...
 
Возможно... но скорей всего мы этого не узнаем :)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
нет нет ребята я периодически просматриваю старое , и вы правы по поводу "запрещено писать в корень C" я проштудировал копм и советовался с техниками действительно у меня так налажена система безопасности!
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
А куда данный код надо вставить в какую загрузку уточните, попробую использовать
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
 
Данный код пишите в простой текстовый файл, сохраняете с расширением vbs - при запуске код должен срабатывать (но это тоже может быть отключено злобными админами :) ).  
Если работает - тогда можно поставить файл (или его линк) в папку автозагрузки винды - у меня сейчас дома это  
c:\Documents and Settings\Игорь\Главное меню\Программы\Автозагрузка\  
Ну и в коде конечно можно исправить путь к свалке бекапов, расширение, период хранения...
 
огромное спасибо, к стати все вовремя!
НЕ БОГИ ГОРШКИ ОБЖИГАЮТ
Страницы: 1
Читают тему
Наверх