Добрый день! Можно ли ограничить по времени работу с файлом (.xlsm) на месяц например. Офис 2013. К сожалению поиск по ключевым словам ("ограничение", "по времени") не дал результата. Извините, если не правильно искал. Вадим.
Добрый день! Можно ли ограничить по времени работу с файлом (.xlsm) на месяц например. Офис 2013. К сожалению поиск по ключевым словам ("ограничение", "по времени") не дал результата. Извините, если не правильно искал. Вадим.778859
Нуу, если включение макросов обязательно (без этого вообще незачем книгу открывать) и проект VBA запаролен (вскрыть этот пароль не так уж и сложно), то можно вот так в модуль книги написать: [vba]
Код
Private Sub Workbook_Open() If Date >= "25/10/2016" Then ThisWorkbook.Close End If End Sub
[/vba]
Нуу, если включение макросов обязательно (без этого вообще незачем книгу открывать) и проект VBA запаролен (вскрыть этот пароль не так уж и сложно), то можно вот так в модуль книги написать: [vba]
Код
Private Sub Workbook_Open() If Date >= "25/10/2016" Then ThisWorkbook.Close End If End Sub
Спасибо _Boroda_,работает. Поменял дату на 23 число = не открывается....здорово, только теперь я не могу открыть зайти и продлить дату...И не знаю как быть...Поможете?
Спасибо _Boroda_,работает. Поменял дату на 23 число = не открывается....здорово, только теперь я не могу открыть зайти и продлить дату...И не знаю как быть...Поможете?778859
Саш, это слишком просто. Могут и догадаться, что макрос работает. Ну а там уж и нагуглить, как их отключить не трудно докопаться. Поэтому файл после заданной даты нужно УБИВАТЬ, чтобы не с чем было ковыряться. Хотя, конечно, при отключенных макросах и это не сработает... Но у нас на работе у всех они включены, т.к. есть общие шаблоны учётных файлов с формами (сам когда-то давно писал ) Есть у меня в копилке "закладочка" на всякий случай Вот такая бяка прописывается в модуль книги:[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'книга уничтожится безвозвратно после заданной даты!!! If Date <= #12/31/2029# Then Exit Sub With ThisWorkbook .Saved = True .ChangeFileAccess xlReadOnly On Error Resume Next SetAttr .FullName, 0 ' снять атрибут у файла "Только чтение" Kill .FullName .Close False End With End Sub
[/vba]
Саш, это слишком просто. Могут и догадаться, что макрос работает. Ну а там уж и нагуглить, как их отключить не трудно докопаться. Поэтому файл после заданной даты нужно УБИВАТЬ, чтобы не с чем было ковыряться. Хотя, конечно, при отключенных макросах и это не сработает... Но у нас на работе у всех они включены, т.к. есть общие шаблоны учётных файлов с формами (сам когда-то давно писал ) Есть у меня в копилке "закладочка" на всякий случай Вот такая бяка прописывается в модуль книги:[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'книга уничтожится безвозвратно после заданной даты!!! If Date <= #12/31/2029# Then Exit Sub With ThisWorkbook .Saved = True .ChangeFileAccess xlReadOnly On Error Resume Next SetAttr .FullName, 0 ' снять атрибут у файла "Только чтение" Kill .FullName .Close False End With End Sub
Леш, согласен. Более того, я раньше тоже похожим макросом пользовался. Да вот только не помогает - обычно файлы передаются или через почту, или через папки с общим доступом, или флешкой, ... Оттуда достается очередная копия. А после 20-30 открытий и стираний пользователь начинает догадываться, что что-то не так и после 50 стираний запрещает макросы. Да и копий файлов обычно очень много. Максимум, чего добиться получается - не сохранять изменения с момента сохранения последней копии. Я одно время даже заморочился над написанием макроса, чтобы удалял все-все копии файла. И письма из Аутлука. Но быстро забил на это дело - понял, что все равно не поможет.
Но все равно согласен - удалять файл лучше, чем просто закрывать. Пугает больше.
Леш, согласен. Более того, я раньше тоже похожим макросом пользовался. Да вот только не помогает - обычно файлы передаются или через почту, или через папки с общим доступом, или флешкой, ... Оттуда достается очередная копия. А после 20-30 открытий и стираний пользователь начинает догадываться, что что-то не так и после 50 стираний запрещает макросы. Да и копий файлов обычно очень много. Максимум, чего добиться получается - не сохранять изменения с момента сохранения последней копии. Я одно время даже заморочился над написанием макроса, чтобы удалял все-все копии файла. И письма из Аутлука. Но быстро забил на это дело - понял, что все равно не поможет.
Но все равно согласен - удалять файл лучше, чем просто закрывать. Пугает больше._Boroda_
Как идея. Изначально почти все листы книги скрыты. Дата записывается в зашифрованном виде в свойство файла. В свойства файла редко кто заглядывает. При открытии файла макрос расшифровывает дату и сверяет с текущей. Если дата не достигнута листы книги делаются видимыми.
Как идея. Изначально почти все листы книги скрыты. Дата записывается в зашифрованном виде в свойство файла. В свойства файла редко кто заглядывает. При открытии файла макрос расшифровывает дату и сверяет с текущей. Если дата не достигнута листы книги делаются видимыми.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Примерно так уже где-то здесь делали при открывании для каждого юзера своего листа. Перед сохранением все листы, кроме листа-транспоранта с надписью ВКЛЮЧИ МАКРОСЫ!, делаются макросом "шибко скрытыми". Доступ к проекту VBA запароливается, чтобы шибко грамотные не открыли шибко скрытые листы. При этом если макросы отключены, то и не будет обработано событие открытия книги, соответственно будет виден только лист-транспарант. Если макросы включены, то лист-транспорант прячется, а показывается лист, соответствующий данному пользователю Там рассматривали множество вариантов идентификации от имени пользователя Офиса, имени компа, сетевого имени до серийного номера диска С. Ну а в этом случае принцип тот же: макросом при сохранении всё шибко заныкать, при открытии если дата не истекла показывать листы, а если истекла, не показывать.
Примерно так уже где-то здесь делали при открывании для каждого юзера своего листа. Перед сохранением все листы, кроме листа-транспоранта с надписью ВКЛЮЧИ МАКРОСЫ!, делаются макросом "шибко скрытыми". Доступ к проекту VBA запароливается, чтобы шибко грамотные не открыли шибко скрытые листы. При этом если макросы отключены, то и не будет обработано событие открытия книги, соответственно будет виден только лист-транспарант. Если макросы включены, то лист-транспорант прячется, а показывается лист, соответствующий данному пользователю Там рассматривали множество вариантов идентификации от имени пользователя Офиса, имени компа, сетевого имени до серийного номера диска С. Ну а в этом случае принцип тот же: макросом при сохранении всё шибко заныкать, при открытии если дата не истекла показывать листы, а если истекла, не показывать.Alex_ST
http://www.excelworld.ru/Picture/smiles/pray.gif Благодарствую Вам! Вы Alex_ST жестоки...Сохранил Ваш макрос со вчерашней датой и файл пропал...смотрел в корзине...под столом..нет. Представил как обрадовались бы мои коллеги...после недели работы..На самом деле он иногда нужен = Пробую его скрепить с кодом Бороды как вторую линию обороны, но надо установить не возможность работы с файлом без включенного макроса...Буду см. ссылку AlexM...СПАСИБО!!!
http://www.excelworld.ru/Picture/smiles/pray.gif Благодарствую Вам! Вы Alex_ST жестоки...Сохранил Ваш макрос со вчерашней датой и файл пропал...смотрел в корзине...под столом..нет. Представил как обрадовались бы мои коллеги...после недели работы..На самом деле он иногда нужен = Пробую его скрепить с кодом Бороды как вторую линию обороны, но надо установить не возможность работы с файлом без включенного макроса...Буду см. ссылку AlexM...СПАСИБО!!!778859
На какую-нибудь гадость кого-нибудь подбить - это мы всегда готовы (в рамках УПК, конечно). А коллеги, к сожалению, "обрадуются" только если откроют файл и будут в него данные долго вводить, не закрывая и не бэкапая промежуточных итогов.
На какую-нибудь гадость кого-нибудь подбить - это мы всегда готовы (в рамках УПК, конечно). А коллеги, к сожалению, "обрадуются" только если откроют файл и будут в него данные долго вводить, не закрывая и не бэкапая промежуточных итогов.Alex_ST