Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 12:44   #1
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию автосохранение файла каждые 15 минут

Как осуществить автосохранение файла каждые 15 минут, в указанную заранее папку , что бы новый файл не затирал предыдущего, ну и отличался временем сохранения в названии файла
kzld вне форума Ответить с цитированием
Старый 13.12.2010, 12:50   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Сама процедура может быть такой
Код:
Sub SaveWorkbook()
    Dim wb As Workbook, wbName As String
    Set wb = Excel.Application.ActiveWorkbook
    ph = ActiveWorkbook.Path
    имя = Format(Now, "dd/mm/yy_hh.mm")
    wbName = wb.Name
    wb.SaveCopyAs (ph & "\Архив\" & Left(wbName, Len(wbName) - 4) & "_" & имя & ".xls")
End Sub
В папке Архив (которую нужно предварительно создать!) будет вот такая копия Магазин1_13.12.10_11.47.xls
А каждые 15 мин, недавно было, посмотрите по поиску, таймер.
Вот нашел, где-то так:
Код:
Sub NextTime()
    Application.OnTime Now + TimeSerial(0, 15, 0), "NextTime"    'здесь выставить нужное время
    Call SaveWorkbook
End Sub
NextTime запускайте при открвтии книги Workbook_Open
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 13.12.2010 в 13:06.
VictorM вне форума Ответить с цитированием
Старый 13.12.2010, 13:07   #3
kzld
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 625
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Сама процедура может быть такой
Код:
Sub SaveWorkbook()
    Dim wb As Workbook, wbName As String
    Set wb = Excel.Application.ActiveWorkbook
    ph = ActiveWorkbook.Path
    имя = Format(Now, "dd/mm/yy_hh.mm")
    wbName = wb.Name
    wb.SaveCopyAs (ph & "\Архив\" & Left(wbName, Len(wbName) - 4) & "_" & имя & ".xls")
End Sub
Вручную получилось, а как вставить период сохранения

А каждые 15 мин, недавно было, посмотрите по поиску, таймер.
Вот нашел, где-то так:
Код:
Sub NextTime()
    Application.OnTime Now + TimeSerial(0, 15, 0), "NextTime"    'здесь выставить нужное время
    Call SaveWorkbook
End Sub
NextTime запускайте при открвтии книги Workbook_Open
А как здесь вставить путь для сохранения и уникальное имя.
И что значит
NextTime запускайте при открвтии книги Workbook_Open
Прошу обьяснить популярнее, для чайника
kzld вне форума Ответить с цитированием
Старый 13.12.2010, 13:10   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Путь здесь уже прописан, папка рабочей книги, папка Архив.
Я предыдущий пост немного добавил.
И так же получается уникальное имя, вида :
Название файла (без расширения)_дата_время.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 13.12.2010, 13:12   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
NextTime запускайте при открвтии книги Workbook_Open

Прошу обьяснить популярнее, для чайника
В модуле Эта книга поместите код
Код:
Private Sub Workbook_Open()
   Call NextTime
End Sub
Этим Вы будете запускать таймер при открытии рабочей книги.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 13.12.2010, 13:23   #6
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Добавлю
Если написать так
Код:
Private Sub Workbook_Open()
   Call SaveWorkbook
   Call NextTime
End Sub
То первая копия у Вас будет сохраняться сразу при открытии файла что, кстати, у меня сделано на многих важных файлах, были прецеденты с потерей файла
Ну а дальше уже по расписанию, каждые 15 мин.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 13.12.2010 в 19:30.
VictorM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
часы показывают m часов, n минут и k секунд. Каковы будут показатели часов через p часов, q минут и r сек Паскалька^^ Помощь студентам 3 11.10.2009 19:41
вирус - "реклама" 1000 посешений , выбивает через каждые десять минут на минуту igor35 Свободное общение 1 23.09.2009 20:34
Попал какой то вирус adsubscribe вылетает каждые 10 минут в центре экрана реклама leonidka Операционные системы общие вопросы 8 16.07.2009 20:33
обращение к процедуре каждые n минут iamaxl Microsoft Office Excel 1 04.07.2009 07:31
Как сделать чтобы макрос выполнялся сам каждые 10 минут? Град SQL, базы данных 0 26.05.2008 16:12