Страница 1 из 2
Ограничение количества запусков файла.
Добавлено: 26 июл 2007, 17:06
AleX70
Ребята помогите решить такую задачу!
Как средствами VBA ограничить количество запусков или использование до определенной даты файла Excel.
Было бы идеально, если этот файл уничтожался после временного ограничения.
Помогите с кодом, в VBA я не силен

Re: Ограничение количества запусков файла.
Добавлено: 26 июл 2007, 18:36
Pavel55
Точно не знаю, но можно попробывать такое
Внимание!!! Тестировать макрос на НЕНУЖНОМ файле. Макрос удалит файл
Код: Выделить всё
Private Sub ExpirationDate()
'ВНИМАНИЕ !!!!
'ТЕСТИРОВАТЬ НА НЕНУЖНОМ ФАЙЛЕ
'ФАЙЛ САМ УДАЛИТЬСЯ, ЕСЛИ ДАТА В КОДЕ БУДЕТ РАНЬШЕ, ЧЕМ СЕГОДНЯШНЯЯ
If Date >= #8/1/2007# Then 'месяц/число/год - 1 Августа 2007г.
iFullName$ = ActiveWorkbook.FullName
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True
SetAttr iFullName$, vbNormal: Kill iFullName$
ActiveWorkbook.Close saveChanges:=False
End If
End Sub
Ну. и соответственно, надо закрыть код для просмотра и поставить пароль, чтобы никто заранее не посмотрел код.
P.S. идея взята с
http://www.progz.ru/forum/index.php?showtopic=28144
Re: Ограничение количества запусков файла.
Добавлено: 04 авг 2007, 17:54
AleX70
Спасибо!
Работает.
Re: Ограничение количества запусков файла.
Добавлено: 06 авг 2007, 12:04
Ser Artur
AleX70 джан огромное спасибо ВАМ ВЫ настоящий волшебник и добрая душа
Re: Ограничение количества запусков файла.
Добавлено: 11 авг 2007, 07:55
AleX70
Так и не понял, спасибо то за что?
Pavel55 - вот кудесник!
А я только вопрос поднял.
Удачи и спасибо всем.
Re: Ограничение количества запусков файла.
Добавлено: 11 авг 2007, 08:52
Pavel55
Кудесник Pashulka (тот, кто его знает, а я думаю, кто занимается VBA его знают хорошо, жалко, что он перестал сюда заходить((((), а я просто перекопировал его код сюда

Re: Ограничение количества запусков файла.
Добавлено: 11 авг 2007, 16:46
Ser Artur
Пардон я извиняюсь. Грех не знать этого великолепного человека.
Re: Ограничение количества запусков файла.
Добавлено: 21 май 2009, 21:50
sergiksergik
А как сделать чтобы после нескольких запусков файл удалялся ... Например после третьего...
Re: Ограничение количества запусков файла.
Добавлено: 21 май 2009, 22:50
AlexZZZ
Очень просто: поместить в ячейку, например, "A1" на "Лист1" счётчик открытий файла.
Для этого в модуль книги ("ЭтаКнига") помещаем тот же, но слегка модифицированный код:
Код: Выделить всё
Private Sub Workbook_Open()
'ВНИМАНИЕ !!!!
'ТЕСТИРОВАТЬ НА НЕНУЖНОМ ФАЙЛЕ
'ФАЙЛ САМ УДАЛИТЬСЯ, ЕСЛИ НА "Лист1" В ЯЧЕЙКЕ "A1" ЗНАЧЕНИЕ БОЛЬШЕ 3
'Счётчик открытий
ThisWorkbook.Worksheets("Лист1").Range("A1").Value = _
ThisWorkbook.Worksheets("Лист1").Range("A1").Value + 1
ThisWorkbook.Save
Dim iFullName$
If ThisWorkbook.Worksheets("Лист1").Range("A1").Value > 3 Then 'Если в счётчике больше 3-х запусков
iFullName$ = ActiveWorkbook.FullName
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True
SetAttr iFullName$, vbNormal: Kill iFullName$
ActiveWorkbook.Close saveChanges:=False
End If
End Sub
Для надёжности сам "Лист1" можно сделать скрытым.
Правда, если файл защищён от записи или открывается, например, напрямую из почтовой программы или с CD или DVD диска, этот код работать не будет. То же самое, если пользователь отключит макросы. Правда во втором случае можно заставить его это сделать, показывая нужные листы только при включённых макросах.
Re: Ограничение количества запусков файла.
Добавлено: 21 май 2009, 23:04
sergiksergik
Спасибо.
AlexZZZ писал(а):То же самое, если пользователь отключит макросы. Правда во втором случае можно заставить его это сделать, показывая нужные листы только при включённых макросах.
Но немного не понял. Объясните как это...
Спсб.