Как автоматически закрыть excel

Автоматическое сохранение и закрытие файла по таймеру

VIDEO56

Дата: Среда, 19.08.2015, 12:50 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 262


Репутация:

23

±

Замечаний:
0% ±


Excel 2010

Добрый день!
Друзья, проблема такая. Есть файл который в общем доступе. Есть куча менеджеров с короткой памятью, которые открывают файл и сидят в нем и ничего не делают. Есть ли возможность с помощью макроса ограничить времени посиделок в файле до 10 минут. По истечению данного времени, файл сохраняется и закрывается?


Всем удачного дня!

 

Ответить

Саня

Дата: Среда, 19.08.2015, 13:07 |
Сообщение № 2

Группа: Друзья

Ранг: Ветеран

Сообщений: 1067


Репутация:

560

±

Замечаний:
0% ±


XL 2016

в модуле «ЭтаКнига»:
[vba]

Код

Private Sub Workbook_Open()
     SetTask
End Sub

[/vba]

в стандартном модуле:
[vba]

Код

Sub SetTask()
     Application.OnTime Now + TimeSerial(0, 10, 0), «WbClose»
End Sub

Sub WbClose()
     ThisWorkbook.Save
     ThisWorkbook.Close
End Sub

[/vba]

К сообщению приложен файл:

7625240.xls
(24.5 Kb)

 

Ответить

KSV

Дата: Среда, 19.08.2015, 13:10 |
Сообщение № 3

Группа: Друзья

Ранг: Ветеран

Сообщений: 770


Репутация:

255

±

Замечаний:
0% ±


Excel 2013

Добрый день!
В модуль книги: [vba]

Код

Private Sub Workbook_Open()
      Application.OnTime Now + #12:10:00 AM#, «TimeOut»
End Sub

[/vba]

В стандартный модуль: [vba]

Код

Private Sub TimeOut()
      ThisWorkbook.Close True
End Sub

[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333

Сообщение отредактировал KSVСреда, 19.08.2015, 13:11

 

Ответить

AndreTM

Дата: Среда, 19.08.2015, 13:26 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1762


Репутация:

498

±

Замечаний:
0% ±


2003 & 2010

Друзья, я бы посоветовал вам не исключать возможности того, что некоторые менеджеры всё же работают, и даже через 10 минут. И за внезапное закрытие файла при внесении данных — докладная будет на ТС, с лишением премий и бонусов, как минимум… killed


Skype: andre.tm.007
Donate: Qiwi: 9517375010

 

Ответить

VIDEO56

Дата: Среда, 19.08.2015, 13:34 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 262


Репутация:

23

±

Замечаний:
0% ±


Excel 2010

AndreTM, вот в том то и дело, что более 5 минут в файле ловить нечего.


Всем удачного дня!

 

Ответить

VIDEO56

Дата: Среда, 19.08.2015, 13:40 |
Сообщение № 6

Группа: Проверенные

Ранг: Обитатель

Сообщений: 262


Репутация:

23

±

Замечаний:
0% ±


Excel 2010

Спасибо други. Работает все идеально!


Всем удачного дня!

 

Ответить

KSV

Дата: Среда, 19.08.2015, 18:07 |
Сообщение № 7

Группа: Друзья

Ранг: Ветеран

Сообщений: 770


Репутация:

255

±

Замечаний:
0% ±


Excel 2013

некоторые менеджеры всё же работают, и даже через 10 минут

думал об этом, но не стал усложнять себе задачу, раз ТС об этом не написал :) на самом деле, до идеала далеко…
Первое, что подумалось – это отсутствие удаления таймера. Т.е., если добросовестный менеджер закроет файл сам, то по истечении 10 минут файл снова откроется, для выполнения процедуры, указанной в таймере, и сразу же закроется. Чтобы этого избежать в модуль книги поместите: [vba]

Код

Dim DateTime As Date

Private Sub Workbook_Open()
     DateTime = Now + #12:10:00 AM#
     Application.OnTime DateTime, «TimeOut»
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
     On Error Resume Next
     Application.OnTime DateTime, «TimeOut», , False
End Sub

[/vba]

А чтобы не прервать работу менеджера в неподходящий момент (вдруг, он откроет файл и пойдет пить кофе, а через 9 минут вернется и начнет заполнять файл :) ), можно чуть изменить логику. Например, закрывать файл не через 10 мин. после открытия, а через 2 мин. бездействия.
Для этого в коде события Workbook_Open() измените время таймаута (например, на 2 мин. – это #12:02:00 AM#) и добавьте в модуль листа код для еще одного события: [vba]

Код

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     Workbook_BeforeClose False
     Workbook_Open
End Sub

[/vba] Тогда при каждом изменении в файле, старый таймер будет сбрасываться, а новый устанавливаться, и файл не закроется пока в нем работают (что-то меняют). А как только перестанут менять, так через 2 минуты он сам закроется.

К сообщению приложен файл:

8794290.xlsm
(14.3 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333

 

Ответить

Dim_Shu

Дата: Среда, 16.03.2016, 15:01 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Всем привет.
Есть ли возможность исправить недочет: если в файле открыта ячейка для редактирования(просто стоит в ней курсор, но ничего не правится), тогда закрытия файла не происходит.

 

Ответить

nilidan

Дата: Воскресенье, 28.04.2019, 21:54 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

1

±

Замечаний:
0% ±


Excel 2016

VIDEO56, перерыл все форумы, но в итоге пришлось сделать самому, понадобилось по работе.

Настраиваем автоматическое закрытие Excel файла при отсутствии активности пользователя в течение определенного времени.
Очень часто в повседневной деятельности нам приходится командой работать с Excel файлом, который находится в общем доступе на сетевом диске. В случае, если файл содержит умные таблицы, то предоставление общего доступа через Review->Share Workbook не представляется возможным из-за ограничений самого Excel. Это порождает проблему блокирования рабочего файла, если один забывчивый сотрудник оставил файл открытым после небольших коррекций и ушёл, например, обедать, а второму сотруднику срочно нужно внести в файл новую информацию. Примеров Вы сами можете вспомнить огромное количество.
Ну что же, приступим!
Задача: Необходимо обеспечить автоматическое сохранение и закрытие файла после бездействия пользователя. При этом пользователь может вносить коррекции в файл, а потом бездействовать, либо просто открыть файл и ничего не делать. Под действием мы понимаем изменение любого диапазона ячеек (удаление значений, ввод новых данных и т.д.) на конкретном листе книги.
Решение:
В целом, чтобы выполнить все условия задачи необходимо будет использовать метод .OnTime. Он запускает таймер на выполнение процедуры закрытия файла. При этом нужно будет прерывать действие запущенного таймера при внесении новых изменений, и запускать его заново.
Теперь конкретно. Для начала приведу код, а потом всё объясню.
Приложенный Excel — макра, Word — описание.

Сообщение отредактировал nilidanВоскресенье, 28.04.2019, 21:55

 

Ответить

nilidan

Дата: Вторник, 30.04.2019, 20:36 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

1

±

Замечаний:
0% ±


Excel 2016

nilidan, забыл сделать блокировку сохранения и закрытия для случая, если файл открыт в режиме read only, оно там не нужно совсем. Обновленные файлики прикрепляю. В принципе можно сделать закрытие, но без сохранения, иначе excel Будет предлагать сохранить файл с новым именем, что нам не надо. Для этого нужно поместить условия с ThisWorkbook.ReadOnly в процедуры Wbclose.

Сообщение отредактировал nilidanВторник, 30.04.2019, 20:36

 

Ответить

shevazp

Дата: Среда, 05.06.2019, 08:26 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

ребята вы мне просто богом посланы, СПАСИБО!

p.s. вроде сразу работало, а теперь эррорит, причем не только этот документ а все документы на ПК… Пойду офис переставлю

Сообщение отредактировал shevazpСреда, 05.06.2019, 09:41

 

Ответить

draginoid

Дата: Среда, 26.05.2021, 11:19 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 23


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

С вашего позволения хотел бы поднять тему.
А как в этом же коде включить принуждение использования макросов. До того активная книга должна быть скрыта.
Я так понимаю, если юзер не включит этого, то и код не сработает.

 

Ответить

Serge_007

Дата: Среда, 26.05.2021, 14:00 |
Сообщение № 13

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Здравствуйте

как в этом же коде включить принуждение использования макросов

Принуждение кого? Юзера? Или макросы отключены? Если отключены — то никак


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

draginoid

Дата: Среда, 26.05.2021, 14:50 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 23


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Имею в виду вариант, если отключены макросы, то и видеть рабочие листы не может юзер.

 

Ответить

zoommist

Дата: Вторник, 07.06.2022, 17:16 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Здравствуйте. Понимаю, что не совсем тот раздел, но очень надо :)
А как будет выглядеть аналогичный макрос для access?
там же нет «эта книга».
У меня открывается форма при открытии access, человек пишет куда поехал и по кнопке сохранить файл сохраняется и access закрывается. но иногда люди забывают нажать сохранить и файл висит открытый. Таймер бы очень помог.

 

Ответить

В некоторых случаях, например при сохранении файла Excel на общем диске, когда файл все еще открывается пользователем, другие не могут редактировать книгу. Так как же автоматически закрыть файл после определенного времени простоя, чтобы облегчить другим работу? Эта статья поможет вам с методом VBA.

Автоматическое сохранение и закрытие файла Excel после определенного времени бездействия с кодом VBA


Автоматическое сохранение и закрытие файла Excel после определенного времени бездействия с кодом VBA

Чтобы автоматически сохранить и закрыть файл Excel после определенного времени бездействия, сделайте следующее.

1. Откройте рабочую книгу, которая должна быть автоматически сохранена и закрыта после определенного времени бездействия. Затем нажмите кнопку другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь на правой панели, чтобы открыть окно кода. Затем скопируйте и вставьте ниже код VBA в окно кода. Смотрите скриншот:

Код VBA 1: автоматическое сохранение и закрытие файла Excel после определенного времени бездействия

Dim xTime As String
Dim xWB As Workbook

Private Sub Workbook_Open()
'Updated by Extendoffice 2019/1/20
    On Error Resume Next
    xTime = Application.InputBox("Please specify the idle time:", "KuTool For Excel", "00:00:20", , , , , 2)
    Set xWB = ActiveWorkbook
    If xTime = "" Then Exit Sub
    Reset
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    On Error Resume Next
    If xTime = "" Then Exit Sub
    Reset
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If xTime = "" Then Exit Sub
    Reset
End Sub

Sub Reset()
    Static xCloseTime
    If xCloseTime <> 0 Then
        ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , False
    End If
    xCloseTime = Now + TimeValue(xTime)
    ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , True
End Sub

3. Затем продолжайте нажимать Вставить > модуль, скопируйте и вставьте приведенный ниже код в окно модуля. Смотрите скриншот:

Код VBA 2: автоматическое сохранение и закрытие файла Excel после определенного времени бездействия

Sub SaveWork1()
'Updated by Extendoffice 2019/1/20
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    
    Application.DisplayAlerts = True
End Sub

4. нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

5. Нажмите Файл > Сохранить как > Приложения. Смотрите скриншот:

6. в Сохранить как В диалоговом окне выберите папку для сохранения файла, назовите ее, как вам нужно, в поле Имя файла выберите Excel Macro-Enabled Workbook из Сохранить как напишите раскрывающийся список и, наконец, щелкните Сохраните кнопка. Смотрите скриншот:

С этого момента каждый раз при открытии этой книги Kutools for Excel появится диалоговое окно. Введите время сохранения и закрытия книги, а затем щелкните значок OK кнопку.

И книга будет сохранена и закрыта автоматически по истечении указанного времени простоя. Смотрите скриншот:


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (23)


Оценок пока нет. Оцените первым!

Содержание

  1. Как закрыть файл эксель по времени
  2. Как автоматически сохранить и закрыть файл Excel по истечении определенного времени простоя?
  3. Автоматическое сохранение и закрытие файла Excel после определенного времени простоя с кодом VBA
  4. Как закрыть файл эксель по времени

Как закрыть файл эксель по времени

Сообщения: 231
Благодарности: 8

Спасибо. Только как пользоваться?
Я вставил код в файл .тхт. Затем изменил расширение на .ps1
ПКМ — Выполнить с помощью PowerShell. Запустилась cmd, промелькнула красная строка и закрылось cmd.
Начал ждать, но ничего не произошло.

или другие времена имеют место впоследствии быть? »

Ладно бы запускать Excel по времени, а закрывать то как? Как минимум, надо это делать корректно, книгу, ИМХО, следует сохранить »

Сообщения: 27625
Благодарности: 8086

Источник

Как автоматически сохранить и закрыть файл Excel по истечении определенного времени простоя?

В некоторых случаях, например при сохранении файла Excel на общем диске, когда файл все еще открывается пользователем, другие не могут редактировать книгу. Так как же автоматически закрыть файл после определенного времени простоя, чтобы облегчить другим работу? Эта статья поможет вам с методом VBA.

Автосохранение и закрытие файла Excel через определенное время простоя с кодом VBA

Автоматическое сохранение и закрытие файла Excel после определенного времени простоя с кодом VBA

Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50% своего времени и сократите тысячи щелчков мышью каждый день!

Чтобы автоматически сохранить и закрыть файл Excel после определенного времени простоя, сделайте следующее.

1. Откройте нужную книгу, чтобы она автоматически сохранялась и закрывалась по истечении определенного времени бездействия. Затем нажмите одновременно клавиши Alt + F11 , чтобы открыть окно Microsoft Visual Basic для приложений .

2. В окне Microsoft Visual Basic для приложений дважды щелкните ThisWorkbook на правой панели, чтобы открыть окно кода. Затем скопируйте и вставьте ниже код VBA в окно кода. См. Снимок экрана:

Код VBA 1: автоматическое сохранение и закрытие файла Excel после определенного времени бездействия

3. Затем нажмите Insert > module , скопируйте и вставьте приведенный ниже код в окно модуля. См. Снимок экрана:

Код VBA 2: автоматическое сохранение и закрытие файла Excel после определенного времени бездействия

4. Одновременно нажмите клавиши Alt + Q , чтобы закрыть окно Microsoft Visual Basic для приложений .

5. Нажмите Файл > Сохранить как > Обзор . См. Снимок экрана:

6. В диалоговом окне Сохранить как выберите папку для сохранения файла, назовите ее так, как вам нужно, в поле Имя файла выберите Excel Macro-Enabled Workbook из раскрывающегося списка Тип и, наконец, нажмите кнопку Сохранить . См. Снимок экрана:

С этого момента каждый раз при открытии В этой книге появится диалоговое окно Kutools for Excel . Введите время сохранения и закрытия книги на основе, а затем нажмите кнопку OK .

После этого книга будет сохранена и закрыта автоматически. указанное время простоя. См. Снимок экрана:

Источник

Как закрыть файл эксель по времени

Модератор форума: китин, _Boroda_

» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>

Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое сохранение и закрытие файла по таймеру (Макросы/Sub)

Автоматическое сохранение и закрытие файла по таймеру

VIDEO56 Дата: Среда, 19.08.2015, 12:50 | Сообщение № 1
Саня Дата: Среда, 19.08.2015, 13:07 | Сообщение № 2

в стандартном модуле:
[vba]

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub SetTask()
Application.OnTime Now + TimeSerial(0, 10, 0), «WbClose»
End Sub

Sub WbClose()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub

в стандартном модуле:
[vba]

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub SetTask()
Application.OnTime Now + TimeSerial(0, 10, 0), «WbClose»
End Sub

Sub WbClose()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub

в стандартном модуле:
[vba]

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub SetTask()
Application.OnTime Now + TimeSerial(0, 10, 0), «WbClose»
End Sub

Sub WbClose()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub

KSV Дата: Среда, 19.08.2015, 13:10 | Сообщение № 3

В стандартный модуль: [vba]

В стандартный модуль: [vba]

В стандартный модуль: [vba]

AndreTM Дата: Среда, 19.08.2015, 13:26 | Сообщение № 4
Skype: andre.tm.007
Donate: Q iwi: 9517375010

Ответить

VIDEO56 Дата: Среда, 19.08.2015, 13:34 | Сообщение № 5
VIDEO56 Дата: Среда, 19.08.2015, 13:40 | Сообщение № 6
KSV Дата: Среда, 19.08.2015, 18:07 | Сообщение № 7

думал об этом, но не стал усложнять себе задачу, раз ТС об этом не написал

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Dim DateTime As Date

Private Sub Workbook_Open()
DateTime = Now + #12:10:00 AM#
Application.OnTime DateTime, «TimeOut»
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime DateTime, «TimeOut», , False
End Sub

А чтобы не прервать работу менеджера в неподходящий момент (вдруг, он откроет файл и пойдет пить кофе, а через 9 минут вернется и начнет заполнять файл ), можно чуть изменить логику. Например, закрывать файл не через 10 мин. после открытия, а через 2 мин. бездействия.
Для этого в коде события Workbook_Open() измените время таймаута (например, на 2 мин. – это #12:02:00 AM#) и добавьте в модуль листа код для еще одного события: [vba]

думал об этом, но не стал усложнять себе задачу, раз ТС об этом не написал

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Dim DateTime As Date

Private Sub Workbook_Open()
DateTime = Now + #12:10:00 AM#
Application.OnTime DateTime, «TimeOut»
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime DateTime, «TimeOut», , False
End Sub

А чтобы не прервать работу менеджера в неподходящий момент (вдруг, он откроет файл и пойдет пить кофе, а через 9 минут вернется и начнет заполнять файл ), можно чуть изменить логику. Например, закрывать файл не через 10 мин. после открытия, а через 2 мин. бездействия.
Для этого в коде события Workbook_Open() измените время таймаута (например, на 2 мин. – это #12:02:00 AM#) и добавьте в модуль листа код для еще одного события: [vba]

думал об этом, но не стал усложнять себе задачу, раз ТС об этом не написал

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Dim DateTime As Date

Private Sub Workbook_Open()
DateTime = Now + #12:10:00 AM#
Application.OnTime DateTime, «TimeOut»
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime DateTime, «TimeOut», , False
End Sub

А чтобы не прервать работу менеджера в неподходящий момент (вдруг, он откроет файл и пойдет пить кофе, а через 9 минут вернется и начнет заполнять файл ), можно чуть изменить логику. Например, закрывать файл не через 10 мин. после открытия, а через 2 мин. бездействия.
Для этого в коде события Workbook_Open() измените время таймаута (например, на 2 мин. – это #12:02:00 AM#) и добавьте в модуль листа код для еще одного события: [vba]

Dim_Shu Дата: Среда, 16.03.2016, 15:01 | Сообщение № 8
nilidan Дата: Воскресенье, 28.04.2019, 21:54 | Сообщение № 9

VIDEO56, перерыл все форумы, но в итоге пришлось сделать самому, понадобилось по работе.

Настраиваем автоматическое закрытие Excel файла при отсутствии активности пользователя в течение определенного времени.
Очень часто в повседневной деятельности нам приходится командой работать с Excel файлом, который находится в общем доступе на сетевом диске. В случае, если файл содержит умные таблицы, то предоставление общего доступа через Review->Share Workbook не представляется возможным из-за ограничений самого Excel. Это порождает проблему блокирования рабочего файла, если один забывчивый сотрудник оставил файл открытым после небольших коррекций и ушёл, например, обедать, а второму сотруднику срочно нужно внести в файл новую информацию. Примеров Вы сами можете вспомнить огромное количество.
Ну что же, приступим!
Задача: Необходимо обеспечить автоматическое сохранение и закрытие файла после бездействия пользователя. При этом пользователь может вносить коррекции в файл, а потом бездействовать, либо просто открыть файл и ничего не делать. Под действием мы понимаем изменение любого диапазона ячеек (удаление значений, ввод новых данных и т.д.) на конкретном листе книги.
Решение:
В целом, чтобы выполнить все условия задачи необходимо будет использовать метод .OnTime. Он запускает таймер на выполнение процедуры закрытия файла. При этом нужно будет прерывать действие запущенного таймера при внесении новых изменений, и запускать его заново.
Теперь конкретно. Для начала приведу код, а потом всё объясню.
Приложенный Excel — макра, Word — описание.

VIDEO56, перерыл все форумы, но в итоге пришлось сделать самому, понадобилось по работе.

Настраиваем автоматическое закрытие Excel файла при отсутствии активности пользователя в течение определенного времени.
Очень часто в повседневной деятельности нам приходится командой работать с Excel файлом, который находится в общем доступе на сетевом диске. В случае, если файл содержит умные таблицы, то предоставление общего доступа через Review->Share Workbook не представляется возможным из-за ограничений самого Excel. Это порождает проблему блокирования рабочего файла, если один забывчивый сотрудник оставил файл открытым после небольших коррекций и ушёл, например, обедать, а второму сотруднику срочно нужно внести в файл новую информацию. Примеров Вы сами можете вспомнить огромное количество.
Ну что же, приступим!
Задача: Необходимо обеспечить автоматическое сохранение и закрытие файла после бездействия пользователя. При этом пользователь может вносить коррекции в файл, а потом бездействовать, либо просто открыть файл и ничего не делать. Под действием мы понимаем изменение любого диапазона ячеек (удаление значений, ввод новых данных и т.д.) на конкретном листе книги.
Решение:
В целом, чтобы выполнить все условия задачи необходимо будет использовать метод .OnTime. Он запускает таймер на выполнение процедуры закрытия файла. При этом нужно будет прерывать действие запущенного таймера при внесении новых изменений, и запускать его заново.
Теперь конкретно. Для начала приведу код, а потом всё объясню.
Приложенный Excel — макра, Word — описание. nilidan

Сообщение VIDEO56, перерыл все форумы, но в итоге пришлось сделать самому, понадобилось по работе.

Настраиваем автоматическое закрытие Excel файла при отсутствии активности пользователя в течение определенного времени.
Очень часто в повседневной деятельности нам приходится командой работать с Excel файлом, который находится в общем доступе на сетевом диске. В случае, если файл содержит умные таблицы, то предоставление общего доступа через Review->Share Workbook не представляется возможным из-за ограничений самого Excel. Это порождает проблему блокирования рабочего файла, если один забывчивый сотрудник оставил файл открытым после небольших коррекций и ушёл, например, обедать, а второму сотруднику срочно нужно внести в файл новую информацию. Примеров Вы сами можете вспомнить огромное количество.
Ну что же, приступим!
Задача: Необходимо обеспечить автоматическое сохранение и закрытие файла после бездействия пользователя. При этом пользователь может вносить коррекции в файл, а потом бездействовать, либо просто открыть файл и ничего не делать. Под действием мы понимаем изменение любого диапазона ячеек (удаление значений, ввод новых данных и т.д.) на конкретном листе книги.
Решение:
В целом, чтобы выполнить все условия задачи необходимо будет использовать метод .OnTime. Он запускает таймер на выполнение процедуры закрытия файла. При этом нужно будет прерывать действие запущенного таймера при внесении новых изменений, и запускать его заново.
Теперь конкретно. Для начала приведу код, а потом всё объясню.
Приложенный Excel — макра, Word — описание. Автор — nilidan
Дата добавления — 28.04.2019 в 21:54

Источник

Adblock
detector

When we save the Excel workbook in shared memory, if one person accesses the sheet, other people will be unable to save the sheet; this problem can be solved by automatically closing the sheet after a certain amount of time. This tutorial will help you understand how we can automatically save and close an Excel file after a certain idle time.

Automatically Save and Close an Excel File after a Certain Idle Time

Here we will first insert VBA code for the sheet, then create a VBA module, then run it to complete our task. Let us see a straightforward process to know how we can automatically save and close an Excel workbook after a certain time. We will be using the help of the VBA application to complete our process.

Step 1

Let us consider any Excel workbook and right-click on the sheet name and select view code to open the vba application. Then, double-click on this workbook and type «Program1» into the text box as shown in the below image.

Example

Dim xTime As String Dim xWB As Workbook Private Sub Workbook_Open() 'Updated by Nirmal On Error Resume Next xTime = Application.InputBox("Please specify the idle time:", "Plese enter the duration", "00:00:30", , , , , 2) Set xWB = ActiveWorkbook If xTime = "" Then Exit Sub Reset End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) On Error Resume Next If xTime = "" Then Exit Sub Reset End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next If xTime = "" Then Exit Sub Reset End Sub Sub Reset() Static xCloseTime If xCloseTime <> 0 Then ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , False End If xCloseTime = Now + TimeValue(xTime) ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , True End Sub

Step 2

Now click on «Insert,» select «Module,» and type «Program 2» into the text box as shown in the below image.

Example

Sub SaveWork1() 'Updated by Nirmal Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True End Sub

Step 2

Save the work sheet as a macro-enabled template, close the sheet, and then reopen the sheet. Then click on «Enable code,» then enter the time you want your sheet to open, then click «OK.»

Conclusion

In this tutorial, we used a simple example to demonstrate how you can automatically save and close an Excel workbook after a certain idle time.

Добрый день. Вписал в макрос, который не дает пользоваться книгой без включения макросов, строчку для  закрытия файла по таймеру. Все работает, вот только если макрос по  истечению времени сам закрывает файл, то при следующем открытии файла  лист с инструкцией по включению макросов не появляется и возможно  работать в файле без включения макросов, а следовательно и макрос на  отключение по таймеру работать не будет. Он появляется снова только при  разовом включении макросов самостоятельно, а потом снова все работает,  до закрытия файла макросом.

Подскажите, пожалуйста, что нужно поменять, чтобы сообщение о  включении  макросов выходило всегда при открытии файла и не важно было  закрыл ли  его макрос или человек вручную.

Код для книги:

Код
'Данная процедура скрывает перед закрытием книги все листы,
 'кроме листа "Внимание"
 Sub Workbook_BeforeClose(Cancel As Boolean)
     Application.ScreenUpdating = False
     Dim wsSh As Worksheet
     Sheets("Внимание").Visible = -1
     For Each wsSh In ThisWorkbook.Sheets
         If wsSh.Name  "Внимание" Then wsSh.Visible = 2
     Next wsSh
     ThisWorkbook.Save
 End Sub
 'Данная процедура показывает перед открытием книги все листы,
 'кроме листа "Внимание"
 Sub Workbook_Open()
     Dim wsSh As Worksheet
     For Each wsSh In ThisWorkbook.Sheets
         wsSh.Visible = -1
     Next wsSh
     ThisWorkbook.Sheets("Внимание").Visible = 2
     Application.OnTime Now + TimeValue("00:01:00"), "CloseBook"
 End Sub

Код для модуля:

Код
Public iTimer As Date
 Private Sub CloseBook()
 ThisWorkbook.Close (True)
 End Sub

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как автоматически закрашивать ячейки в excel в зависимости от значения
  • Как автоматически закрасить ячейку в excel при условии
  • Как автоматически закрасить ячейку в excel по датам
  • Как автоматически добавлять ячейки в excel
  • Как автоматически добавлять строку в таблицу excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии