Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2009, 21:10   #1
yevgen
Новичок
Джуниор
 
Регистрация: 08.06.2009
Сообщений: 3
По умолчанию Пароль в EXCEL по истечению суток

Как сделать чтобы книга Excel в рабочий день (скажем сегодня) открывалась без проблем, а в определённый день (скажем завтра) при запуске потребовала ввод пароля?
Пробовал это:
Private Sub Workbook_Open()
If Date > f1 Then
ActiveWorkbook.Password = "123"
End If
End Sub

f1 ячейка с датой, "123" пароль.

Не работает! т.е. требует пароль при каждом открытии.

Помогите разобраться с Автоматическим включением пароля по указанной дате!

Заранее благодарен!
yevgen вне форума Ответить с цитированием
Старый 08.06.2009, 22:02   #2
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Пароль на книгу надо ставить перед закрытием. Примерно так:
Код:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Password = ""
If Date > Range("F1") Then ActiveWorkbook.Password = "123"
End Sub
pivas вне форума Ответить с цитированием
Старый 09.06.2009, 00:42   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

если процедура выглядит так, как написано, то f1 в данном случае не ячейка, а необьявленная переменная, которая равна 0, соответсвенно условие Date > f1 выполняется всегда, и файлу тут же присваивается пароль. Как обратиться к ячейке f1 - написано у pivasа.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.06.2009, 16:58   #4
yevgen
Новичок
Джуниор
 
Регистрация: 08.06.2009
Сообщений: 3
По умолчанию

Спасибо. Всё верно. Работает! Но только в том случае, если дата вводится вручную. При применении f1 =ТДАТА или =СЕГОДНЯ() автоматически, при сохранении, меняется дата и ничего не происходит. Интересно - есть ли решение для такого наворота?

Последний раз редактировалось yevgen; 09.06.2009 в 17:00.
yevgen вне форума Ответить с цитированием
Старый 09.06.2009, 17:46   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
При применении f1 =ТДАТА или =СЕГОДНЯ() автоматически, при сохранении, меняется дата и ничего не происходит
А чего ты хочешь добиться?
Чтобы в ячейке была именно такая формула, но значение ячейки не пересчитывалось?
Зачем же тогда формула? Один-то раз можно и вручную внести дату в ячейку...
EducatedFool вне форума Ответить с цитированием
Старый 09.06.2009, 18:33   #6
yevgen
Новичок
Джуниор
 
Регистрация: 08.06.2009
Сообщений: 3
По умолчанию

Всё, проехали! Это из-за лени! Работает как положено с подачи pivasa. Ещё раз спасибо!
yevgen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добое время суток.... Allen Iverson Фриланс 2 25.04.2009 07:39
запрашивает ввод времени суток и в зависимости от этого выводит на экран "Доброе утро", "Добрый день". Maria, Russia Помощь студентам 5 17.02.2009 21:44
Добре время суток,камрады!!! Grundic Паскаль, Turbo Pascal, PascalABC.NET 9 26.01.2009 12:13
Определение суток перевода времени на летнее/зимнее ViTYAi Помощь студентам 1 20.05.2008 16:41
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол Askat Общие вопросы Delphi 0 18.07.2007 06:28