Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

skype: ExcelVBA.ru
По умолчанию

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

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

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

Код:
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, 13:58   #5
alekszaytsev
Новичок
 
Регистрация: 17.04.2015
Сообщений: 1
Репутация: 10
По умолчанию Код с описанием

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


16:58.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru