Страницы: 1 2 След.
RSS
Как запретить ввод времени раньше фактического?
 
Доброго времени суток Уважаемые,
Речь идёт о небольшом офисе с общим числом рабочих около 20 человек. У каждого сотрудника есть отдельный файл, где он вводит начало / конец рабочего дня. К сожалению некоторые лица злоупотребляют доверием и охватывают не корректное время и это собственно проблема.
Не могли бы Вы подсказать как с помощью Excel можно избежать подобных ситуаций? Вполне возможно, что эта тема уже не единожды поднималась, тогда было бы достаточно ссылки на соответственное описание.
Всё, что мне пока пришло на ум - возможна ли функция (формула), благодаря которой станет невозможным , введение времени раннее текущему? Т. е. если я пришёл в 8:03, то не смогу ввести 07:30.
Заранее огромное спасибо.
 
Название темы должно отображать суть проблемы.
Проблема ведь не в рабочем времени?)

Можно использовать инструмент Проверка данных, можно макрос, который будет писать время открытия/закрытия книги в отдельный файл, без необходимости что либо вводить сотрудникам.
 
Цитата
Aiko Shiba написал:
Рабочее время
И что?
Цитата
Dima S написал:
Название темы должно отображать суть проблемы.
 
Уважаемые модераторы,
Пожалуйста измените название темы на
"Фиксирование действительного (не выдуманного) рабочего времени."
Спасибо.
 
Изменил на своё.
 
Aiko Shiba, да это же пустая работа. Неужели сложно повлиять на Excel. В итоге круг шулеров сузится до понимающих чуть более "нажать =", проблемка не решится %).
 
vladjuha, автор просто спрашивает, как запретить ввод времени? Чтобы нельзя было ввести меньше, чем системное. И всё.
Решится проблема, не решится - вопрос другой.
 
Можно попробовать через "Проверку данных", как и предложил Dima S, однако "хитрые" пользователи смогут ее убрать. В таком случае придется либо защиту листа включать, либо через макрос реализовывать. А у вас есть возможность работы с макросами? (знаю, что в некоторых организациях их блокируют сисадмины)
 
Цитата
Aiko Shiba написал:
станет невозможным , введение времени раннее текущему
Если выполнить данное условие, то время не ввести никогда, так как время бежит :-)  и уж было набрал текущее, а оно уже прошло :-). Определите максимальное время которое можно использовать как дельту к текущему.  
Вам нужен таймштамп судя по всему. Если вводится руками с описаным вами ограничением, то проверку данных  указать нижний предел времени как текущее время, но за минусом дельты.  Можно автоматезировать вводт текущего времени по кнопке скриптом, при этом запрет ввода меньшего сделать элементарно.
Изменено: БМВ - 18.02.2017 22:57:19
По вопросам из тем форума, личку не читаю.
 
Цитата
Сергей Калентьев написал:
А у вас есть возможность работы с макросами? (знаю, что в некоторых организациях их блокируют сисадмины)
добрый вечер, Сергей. Скорее всего есть возможность. Проблема в том, что я не совсем умею это.  
 
В модуль листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
        Application.EnableEvents = False
        If Target < Time Then
            MsgBox "Вы ввели недопустимое время!. Повторите ввод.", 48, "Ошибка!"
            Application.Undo
        End If
    End If
    Application.EnableEvents = True
End Sub
 
Вариант с проверкой данных
Изменено: gling - 18.02.2017 23:19:02 (Заменил файл)
 
gling, ввел и что дальше должен делать?
 
Цитата
gling написал:
Вариант с проверкой данных
А файл точно тот? )
 
ну и мои копеечки
По вопросам из тем форума, личку не читаю.
 
Цитата
Юрий М написал:
А файл точно тот? )
Нет конечно.
Файл в сообщении #12 заменил, защита листа не установлена.
 
БМВ, мне здесь еще нужно с англ на немецкий переводить )))
можете пожалуйста еще раз объяснить, что я таким образом получаю?
Спасибо
 
Aiko Shiba, мой вариант пробовали?
 
можно :-)
для B2 есть скрипт
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = "$B$2" Then
        Target = Time()
        Cancel = True
    End If
End Sub
И условное форматирование защищающее от ручного ввода., Для ввода текущего времени просто два раза кликнуть на ячейке,

Для B5 только условное форматированеи. Формулы УФ на лист поместил. Локализуются для просмотра. Туда можно вести время только если оно не ранее текущеего минус указанное в дельте.
Изменено: БМВ - 18.02.2017 23:25:55
По вопросам из тем форума, личку не читаю.
 
Юрий М, простите мне мое невежество. я до сих пор в поисках куда нужно это все вставлять )))
у меня IMAC, здесь немного все иначено я обязательно попробую, не сомневаюсь, что Ваша помощь сверхкомпетентна
 
Цитата
Aiko Shiba написал:
у меня IMAC
Предупреждать нужно: на Маc многое из того, что применимо к Win, не работает (
Если Windows, то правый клик по ярлычку листа - Исходный текст и туда скопироовать мой код.
А исправленный вариант Gling пробовали?
 
Цитата
Юрий М написал:
на Маc многое из того, что применимо к Win, не работает (
Юрий М, на работе у меня виноус, поэтому домашний ИМАК - это всего лишь возможность испробовать предложенные Вами и другими участниками форума предложения
 
Особо ушлые научаться переводить время назад :)
Не, нужно на сервис времени завязывать, и всё делать вообще одной кнопкой "Я пришёл", которая меняется на "Я ухожу!", которая меняется на ...
И чтоб время писалось в файл, скрытый в дебрях сетки. Проще в текстовый.
Чтоб вообще ничего никуда не вводить, а имя юзера брать из учётки компа (чтоб за соседа не отмечали). Это если комп у каждого свой.
Если забудут отметиться с приходом или уходом - можно сделать чтоб кнопки сами меняли "ориентацию" в зависимости от текущего времени, если такое понадобится.
Ну или объяснительную на стол! :)
Ну или пусть будут две кнопки - только там такого понажимают, не разберётесь потом...
Ну и естественно макросы под строжайший пароль, но ведь всё равно когда-то вскроют...
А может каждому просто дать ярлык на скрипт, который где-то на сервере, и защищён правами доступа? Я правда не спец в этих правах...
 
gling, здравствуйте не могу ничего ввести в файл, который Вы подвесили
наверное некоторые трудности в переходе Виндоус-Мак
В любом случае большое спасибо
Изменено: Aiko Shiba - 18.02.2017 23:42:17
 
Уважаемые Форумчане, откликнувшиеся на мою просьбу Огромное всем спасибо за уделенное время!
желаю Всем мира и любви.
Aufwiedersehen.
Изменено: Aiko Shiba - 18.02.2017 23:42:04
 
Hugo
Вы полностью правы, но Юрий ранее написал, что тут ответ на вопрос как сделать, а не  как не дать обойти этот простой способ. Вариантов куча в зависимости от того что там и как, например запрос в лог сделать и получить последнее время разблокировки/логона пользователя ....  Еще смешнее, заносить время без контроля, но незаметно писать фактическое время в укромное место и потом по рукам дать, чтоб неповадно было.  ....
По вопросам из тем форума, личку не читаю.
 
БМВ,
Цитата
[USER=76949]БМВ написал: но незаметно писать фактическое время в укромное место и потом по рукам дать, чтоб неповадно было. ....
именно!!! )
Изменено: Aiko Shiba - 18.02.2017 23:51:21
 
Не, так нельзя - это противоречит названию темы! :)
 
Игорь, не вредничай )
Ещё вариант: какое бы время не пытался ввести человек (если ручной ввод), то вводить текущее время )
Не на какой-то фискальный лист, а в фактическую ячейку.
 
offtop
Варианты все могут быть разрушены если пользователь может сам что-то изменить в файле или в настройках ПК и об этом Игорь твердит. Хотя им тоже можно противодействовать , например синхронизировать время принудительно по простому "net time \\имя_компа_сервера_точного_времени /set". Найти его  если домен просто,  это контроллер домена. Tсли не домен , то сложнее конечно. тут пример получения данных с интернет TS.  ....  Но на эти ухищьрения всегда найдется Ethernet Cable unplug :-) , А на него не дать внести без синхронизации, .... вечная борьба  :-)
По вопросам из тем форума, личку не читаю.
Страницы: 1 2 След.
Наверх