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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2012, 18:23   #1
spaceboris
Новичок
Джуниор
 
Регистрация: 17.02.2012
Сообщений: 2
По умолчанию Макрос для закрытия с автосохранением

Приветствую, господа. Сам я в бейсике ни бум-бум, но появилась необходимость вбросить в экселевский файлик макрос на закрытие документа с автоматическим сохранением, если пользователь не вносил никаких изменений в книгу в течение 15 минут.
Не найдется ли добрых людей помочь в сей беде?
spaceboris вне форума Ответить с цитированием
Старый 17.02.2012, 18:54   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Такой "макрос" уже встроен в Excel - автосохранение книги называется.

EducatedFool вне форума Ответить с цитированием
Старый 17.02.2012, 20:14   #3
spaceboris
Новичок
Джуниор
 
Регистрация: 17.02.2012
Сообщений: 2
По умолчанию

Перефразирую. Нужно именно принудительное закрытие файла с сохранением. То есть человек отошел, допустим, от компа. Или же ковыряется в другом окне более чем 15 минут, а экселевское окно автоматически закрывается с принудительным сохранением файла без выброса диалогового окна. Как-то так.
Дефолтное автосохранение в данном случае не подходит. :\
spaceboris вне форума Ответить с цитированием
Старый 17.02.2012, 22:48   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
Dim DT As Date
Const Period = "00:01:00"

Sub App_Close()
  If Now - DT > TimeValue(Period) * 2 Then
     DT = Now + TimeValue(Period)
     Application.OnTime DT, "ЭтаКнига.App_Close", DT + TimeValue("00:01:00"), Schedule:=True
  Else
    ActiveWorkbook.Close SaveChanges:=True
  End If
End Sub

Private Sub Workbook_Open()
   DT = Now + TimeValue(Period)
   Application.OnTime DT, "ЭтаКнига.App_Close", DT + TimeValue("00:01:00"), Schedule:=True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 DT = Now - 1
End Sub
примерно как-то так... Измените Period на своё значение и всё будет закрываться)
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 17.02.2012 в 22:58.
DiemonStar вне форума Ответить с цитированием
Старый 21.11.2016, 12:58   #5
alekszaytsev
Новичок
Джуниор
 
Регистрация: 17.04.2015
Сообщений: 1
По умолчанию Код с описанием

Не давно снова столкнулся , пришлось написать VBA код http://zaycev.me/index.php/myblog/en...i-polzovatelya
alekszaytsev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
для работы написать макрос для Excel и Word.... smanna Microsoft Office Excel 2 30.11.2010 12:43
Создать экзешник для закрытия определенных прог hrutka Помощь студентам 14 03.12.2009 15:30
программа для закрытия приложения Joslen_bomon Софт 8 21.11.2009 13:08
Надо макрос для Excel для перестановки букв dionisprf Microsoft Office Excel 2 10.06.2009 06:04
TWebBrowser-как перехватить команду скрипта для закрытия окна и не дать ему закрыться Вовик Компоненты Delphi 5 03.10.2007 12:17