Страницы: 1
RSS
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
Добрых времен суток!
Господа хорошие, помогите чайнику!
Руководство поставило задачу, организовать работу электронного журнала о приходе и уходе с работы сотрудников.Поскребя по сусекам, отыскали сканер штрих-кодов, старенький комп, с установленным эксель 2016, все это дело между собой подружили, работает (нагенерировали штрих кодов, раздали сотрудникам, при приходе на работу и уходе каждый сканирует свой код, эксель все это дело обрабатывает с помощью ВПР, с помощью макроса записывается время изменения каждой ячейки, все вроде хорошо.
При приходе сотрудника на работу создаётся запись в сроке экселя, со штрих кодом, фио, должностью, время прихода, а при уходе сотрудника с работы создаётся ещё одна строка только со временем ухода.
Получается две строки.
Вопрос, возможно ли сделать так, что бы время ухода и прихода вставали в одну строку но разные колонки, а то как то не удобно сначала смотреть время прихода, а затем искать строку со временем ухода.
Заранее спасибо!

Новое название:Автоматеческая установка даты и времени в одну строку разных колонок.
Изменено: Sys - 05.03.2019 20:38:58 (изменение названия)
 
Правила форума: о названии темы, о файле-примере.
Пример прикрепите к первому сообщению. Новое название предложите в сообщении. Модераторы заменят.
 
пример конечно корявый из двух строк, по сути можно приход считать как минимальное время за дату по сотруднику а уход максимальное время за дату по сотруднику хотя хз какой у вас график работы если директор с кадрами шарохается пол второго ночи по работе
Лень двигатель прогресса, доказано!!!
 
Как это сделать?
 
Sys, почему Вы просто не поместите даты Прихода и Ухода в разные столбцы? F1 - приход, G1 - уход. А в коде добавьте цикл на уход, ровно такой же как и на приход, только оффсет на 1 столбец подальше и все.
 
Sys, вот таким образом. Понятно, что сейчас он тоже время указывает, ну это Вы уже у себя дородите как Вы дату ухода там по штрихкодам извлекаете.
Код
1  Private Sub Worksheet_Change(ByVal Target As Range)
2    
3    For Each cell In Target
4       If Not Intersect(cell, Range("A:A")) Is Nothing Then
5            With cell.Offset(0, 5)
6               .Value = Now
7               .EntireColumn.AutoFit
8            With cell.Offset(0, 6)
9               .Value = Now
10               .EntireColumn.AutoFit
11            End With
12            End With
13       End If
14    Next cell
15 End Sub
Изменено: Paul Zealand - 06.03.2019 07:20:18
 
Получается дата и время встают при изменении ячейки.

Private Sub Worksheet_Change(ByVal Target As Range)
   
   For Each cell In Target  
      If Not Intersect(cell, Range("A:A")) Is Nothing Then
           With cell.Offset(0, 5)      
              .Value = Now
              .EntireColumn.AutoFit
           End With
      End If
   Next cell
End Sub
 
Нужно что бы когда сотрудник уходил с работы и сканил штрих-код, эксель находил уже существующую строку этого сотрудника (к примеру сопоставлял уникальный штрих-код )по этой дате  со временем прихода и подставлял дату скана времени ухода в следующую колонку
а не создавал новую строку.
Изменено: Sys - 06.03.2019 07:36:44
 
Sys, тогда объявите последнюю ячейку в столбце А в качестве переменной, и при сканировании оффсеттьте от переменной на 6 столбцов и вставляейся текущее время - now.  
 
Можно на примере?
 
Sys, ну вот так примерно. Только это я уже в модуль впихнул.
Код
Sub test()

Dim x As Range
Set x = Range("A" & Rows.Count).End(xlUp)
x.Offset(0, 6).Formula = "=NOW()"

End Sub
Изменено: Paul Zealand - 06.03.2019 08:09:11
 
В пердложенном Выше варианте, всегда в последнюю строку будет вписываться время. Я так понимаю у Вас же ограниченный и фиксированный штат сотрудников, можно объявить каждого по коду в качестве переменной. И в зависимости от штрихкода при сканированнии, чтобы он оффсетил от нужной переменной. А в целом логика та же.
 
Спасибо огромное!
Но чтот не работает, скорее всего я чет не правильно делаю((
 
Sys, я, конечно, сам дилетант тот еще. Не совсем понимаю как Вы совместили скан штрихкода с Макросом на листе. Но, вот просто по модулю если код писать, то можно такой попробовать, может Вам это поможет догадаться как это реализовать в Вашем случае.
Код
Sub test()

x1 = 2
x2 = 3
x3 = 4
x4 = 5
x5 = 6
x6 = 7

Set y1 = Range("A" & x1)
Set y2 = Range("A" & x2)
Set y3 = Range("A" & x3)
Set y4 = Range("A" & x4)
Set y5 = Range("A" & x5)
Set y6 = Range("A" & x6)

y1.Offset(0, 6).Formula = "=NOW()"
y2.Offset(0, 6).Formula = "=NOW()"
y3.Offset(0, 6).Formula = "=NOW()"
y4.Offset(0, 6).Formula = "=NOW()"
y5.Offset(0, 6).Formula = "=NOW()"
y6.Offset(0, 6).Formula = "=NOW()"

End Sub
Изменено: Paul Zealand - 06.03.2019 08:49:43
 
Цитата
Sys написал:
Вопрос, возможно ли сделать так, что бы время ухода и прихода вставали в одну строку но разные колонки,
Наверно проще обработать уже созданный файл. Формулами или макросом - в зависимости от сложности файла.

В разные колонки тоже можно... Но что делать, если сотрудник несколько раз вошел и вышел? Если зашел в 20:00 а вышел в 6:00 следующего дня?
Изменено: Михаил Витальевич С. - 06.03.2019 09:29:43
 
Paul Zealand,  от Вас ждем адекватное название темы. Помогаете в теме с нарушенем и предупреждением модератора - помогайте и форуму.
 
Михаил Витальевич С.,
Я тоже задавался этим вопросом, получается что если сотрудник будет выходить входить несколько раз то, в таблице будут создаваться новые строки со временем входа выхода (для отчета это не критично) проблема в другом, нужно что бы запись со временем выхода сотрудника вставала в соседнюю ячейку с временем входа, Я думаю так, как бы программно отрыть ячейку для записи  (к примеру с параметром END) даты и времени выхода сотрудника, при закрытой ячейке (в которой уже стоит дата и время - время входа) то есть при скане штриха создается строка с параметрами сотрудника, и в этой же строке в ячейке после даты прихода программно открывалась ячейка которая бы ждала скана на время выхода а штрих кода отбирала по соответствию со штрих-кодом при записи времени прихода сотрудника,и после скана ожидающего штриха с радостью бы записывала в себя время так сказать события. а тот кто не успел выйти этой датой которой заходил, то на него создается новая строка как будто он только пришел на работу, но возникает закономерный вопрос, как быть если этот сотрудник пришёл на работу опять вечером...
 
Sys, если честно то вы хотите решить вашу задачу путем слома правильно организованной системы.
По сути вам не нужно писать в одну строку. вам нужно получить сводный отчет, на основании той базы данных, которая у вас сейчас чудесным образом собирается в плоскую таблицу.
Мой вам совет - не ломайте - сделайте отчет. Не знаете как - спросите нас.
Вот горшок пустой, он предмет простой...
 
PooHkrd,
С радостью поинтересуюсь:)
Так Как-же?
 
Sys, не игнорируйте сообщения модератора
Цитата
Sys написал:
Так Как-же?
когда нормальный пример приложите
Лень двигатель прогресса, доказано!!!
 
vikttur,
Пожалуйста, измените название темы на Автоматическая установка даты и времени в ячейки при записи данных со сканера штрих-кода.
 
Sys, а вот для этого нужно создать новую тему с осмысленным названием, примером в 10-20 строк из вашей БД (персональные данные не нужны) и видом отчета, который вы хотите получить на выходе.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал: вот для этого нужно создать новую тему
А с этой что делать? Вникать некогда...
 
Наверно лучше новую. Тут ничего полезного особо нет.
Имхо, конечно.
 
Paul Zealand что-то предлагал... Все в мусорку?
 
vikttur, название уже автор за меня придумал. Не успел )) Видимо, не подошло ничего. Нужен нормальный пример, как есть и как надо, тогда уж и гадать не нужно будет...
Страницы: 1
Наверх