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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2009, 08:30   #1
stas77
Пользователь
 
Регистрация: 01.10.2009
Сообщений: 83
По умолчанию Запрет на изменения вчерашним днем!

Всем привет!
Можно ли сделать такое:есть отчет в разбивке на все дни месяца, так вот хочу сделать так чтобы менеджер мог вбивать только сегодняшним числом в соответствующей ячейке сегодняшнего дня!
А все вчерашние или завтрашние ячейки были недоступны, для изменений!
Заранее спасибо!
stas77 вне форума Ответить с цитированием
Старый 05.11.2009, 08:46   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Можно ли сделать такое
Да, можно.

Проще всего макросом по событию изменения листа проверять, внесены данные за нужную дату, или нет, и при несоответствии дат отменять ввод (затирать введённое значение)

Ну или макросом ставить защиту на определённые ячейки при каждом открытии файла.
EducatedFool вне форума Ответить с цитированием
Старый 05.11.2009, 09:10   #3
stas77
Пользователь
 
Регистрация: 01.10.2009
Сообщений: 83
По умолчанию

Проще всего макросом по событию изменения листа проверять, внесены данные за нужную дату, или нет, и при несоответствии дат отменять ввод (затирать введённое значение)

А как это выглядит? то есть у меня в чем заморочка-хочу чтобы менеджер сразу привык к порядку заполнения срок в срок!
я не могу понять если честно как будет работать этот механизм предложенный Вами, то есть в конце месяца можно к примеру посмотреть правильно ли заполненно день в день? Так? или в любой день можно смотреть историю?
stas77 вне форума Ответить с цитированием
Старый 05.11.2009, 18:01   #4
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Кстати! незамысловатый менеджер сможет додуматься поменять дату на компе! и тогда обычная проверка дат не сработает.
Варианты решения:
1 Можно в добавок еще подзащититься, добавив переменные на какой-нибудь сильно скрытый "системный" лист (можно в ячейки, или можно с помощью Worksheet.CustomProperties), в которой будет храниться дата любого последнего события (открытия, закрытия и тд) и сравнивать ее с текущей датой (ведь файл не как не может быть из будущего), в этом случае человек уже ни как не сможет вносить изменения в книгу подкрепленные более ранним числом, чем число последней работы с книгой, однако можно будет запускать файл раз в месяц с измененным временем на компе.

2. Можно запретить человеку самому вводить даты (кроме времени), а вставлять (дд.мм.гггг) непосредственно то что храниться в системе. Тогда человеку будет бестолку менять дату на компе.

PS: - так - почва для размышления...
tolikman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет изменения содержимого каталог Andrey Безопасность, Шифрование 4 28.09.2009 21:55
С днем программиста! crazy horse Свободное общение 38 13.09.2009 21:05
С днем сисадмина! SkyM@n Свободное общение 18 31.07.2009 23:51
Запрет изменения размера окна? unicode Общие вопросы Delphi 3 23.04.2009 14:12
Запрет изменения даты Viteef Общие вопросы Delphi 0 20.02.2008 05:09