Страницы: 1
RSS
Перход рабочей книги, в режим чтения с сохранением, после некоторого времени простоя!
 
Доброго времени суток!    
На работе есть один документ, которым пользуеться по очереди в течении дня несколько человек с отдела по мере надобности.    
Вопрос:    
Есть ли какой нибудь способ, чтобы вполнялось следующие условие: если книга простаивает, или к ней не обращаються более определенного времени, то она автоматически сохранялась и переходила в режим чтения!  
Объясню сразу для чего это надо. Очень часто люди забывают перевести ее в режим чтения, или закрыть, чтоб дать доступ другим изменять ее! Приходиться искать кто ее открыл, и через пенки гнать его чтобы все закрывал!    
 
Вот такая небольшая поблема, коорую хотелось бы решить! Организовывать многопользовательский доступ не стали, так как не подходит он!    
 
По форуму прошелся поиском, похожего не нашел!    
 
Заранее большое спасибо
 
Так понимаю что эту проблему не решить ?    
 
Просмотры темы есть, а не одного ответа  ( ( (
 
Я, например, не знаю, как отследить "обращение" к Книге,- поэтому и не отвечаю. Как отследить изменение на листе знаю.
 
{quote}{login=Юрий М}{date=20.08.2009 11:07}{thema=}{post}Я, например, не знаю, как отследить "обращение" к Книге,- поэтому и не отвечаю. Как отследить изменение на листе знаю.{/post}{/quote}А ни как нельзя отследить смену активной ячеки? Смыл в том, что раз значения не меняются, значит ее можно перевести в режим чтения...    
Вот только что делать, если она у всех перейдет в режим чтения?
 
Отследить смену активной ячейки можно. Но ведь можно просматривать книгу не активируя другую ячейку.
 
Так и просматривай в режиме чтения. А раз сам ни чего не меняешь - так не мешай другим :).
 
Такое чуство,что сами себе создаем проблемы,а потом героически их решаем.  
Для нескольких пользователей есть режим общей книги,странно что он Вам не подходит.Другой вариант разбить книгу на несколько и каждый будет заполнять свою часть автономной,а ссылками собирать в одну (у меня на работе как правило используют данный вариант).  
На да ладно,то Ваше право.Теперь от лирики к делу.ИХМО есть тока один вариант:  
запускать механизм "самоуничтожения по времени", но при любом изменении листа его перезапускать.Можно и на другие евенты его повесить прижелании. Ниже приведенный код вставьте в модуль ЭтаКнига (ThisWorkbook).    
 
Да и еще.Я не проверил что будет если книгу закрыть как положено.По идее надо перед закрытие отлючать "самосохранятель".  
 
Private Sub Workbook_Open()  
If ThisWorkbook.ReadOnly = False Then Application.OnTime Now + TimeValue("00:10:00"), "ThisWorkbook.SaveAndReadonly",,False  
End Sub  
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)  
If ThisWorkbook.ReadOnly = False Then Application.OnTime Now + TimeValue("00:10:00"), "ThisWorkbook.SaveAndReadonly",,False  
End Sub  
Sub SaveAndReadonly()  
'сюда вставить код сохранения и открытия только для чтения  
End Sub
 
Спасибо! Сеня попробую!    
О результатах отпишусь!
 
результаты были видимо сногсшибательные :)  
приветствую коллеги, давненько я к вам на огонек не заглядывал  
позвольте продолжить эту благородную задачу - закрыть книгу через определенное время, чтоб и другие могли вкусить радость от общения с ней :)  
 
и так, есть такой кусок кода:  
Application.OnTime Now + TimeValue("00:30:00"), "CloseThisWorkbook"  
 
и соответственно к нему в довесок модуль:  
 
Private Sub CloseThisWorkbook()      
   ThisWorkbook.Save  
   ThisWorkbook.Close  
End Sub  
 
вопрос я вам, о премудрые в макросах, хотел задать следущий - а не затруднит ли вас прикрутить к вышеуказанной строчке (которая живет в макросе Private Sub Workbook_Open() и выполняет ряд полезных вещей) такую штуку...  
чтоб время, через которое книга закрывается, указывалось не в коде, а в ячейке, допустим в А1  
 
ЗЫ: как вы помните, я в кодах нибумбум :)
 
типа как-то так  
без красоты и
 
эээ... коллега, если я правильно понял, в ячейке А1 отображается время, которое осталось до закрытия книги? и оно всегда равно 30 минутам?  
прошу прощения, понимаю, неправильно поставленный вопрос ведет к неправильному ответу :)  
и так, корректирую вопрос изначальный:  
...чтобы время, через которое нужно закрыть данную книгу, ЗАДАВАЛОСЬ в ячейке А1 АКТИВНОГО листа, а не вписывалось вручную в тело макроса...  
 
типа так - открыл книгу, глядь, а в А1 вписано 10 (ну типа минут)  
нет, мало, надо больше и вписываешь 60 (тоже типа минут)  
и книга закрывается спутя эти свежеуказанные 60 типа минут  
 
вот как-то так  
 
еще раз прошу прощения за неточный вопрос
 
Активного, боюсь, не выйдет. Или активного на момент открытия?  
Я к чему: Открыл, увидел 10, вписал 60, перешел на другой лист, там в А1 20 но рублей, в третьем вообще "привет" стоит.  
По реализации в А1:  
Я бы тогда счетчик поставил в А1 при открытии туда 10, но можно и внести 60, а по Application.OnTime Now + TimeValue("00:01:00") - каждую минуту значение А1 уменьшать на 1 мин, а ежели достигло 0 или меньше .Save и .Close.  
 
mazayZR, где так долго?
Bite my shiny metal ass!      
 
да где, где :)    
да всё тут же, заработался :)  
ну и честно говоря, наигрался... все свои рабочие таблицы приоформил под себя лентяя и только сижу иногда баги исправляю и в поиске нового и познании неизведанного как-то интерес поугас  
но иногда заглядываю и почитываю - всё одно и тоже :)
Страницы: 1
Читают тему
Наверх