Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/график опозданий - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
график опозданий
Vetali Дата: Вторник, 05.02.2013, 21:43 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

приветствую всех. первым делом хочу поблагодарить создателей данного ресурса, а так же администраторов и всех кто помогает незнающим людям.
много отсюда подчерпнул но дошел до предела своих знаний и умений. сразу скажу что excel не знаю почти вобще, а так же ВБА.
задача такова:
График работы, опозданий и подсчет штрафа за них, по сотрудникам.
Если коротко, есть считывающее оборудование, которое автоматом заносит данные (код чипа)в excel документ, когда сотрудник прикладывает пластиковую карту с чипом к нему.
Чего хочется:
В приложенном фаиле есть макрос, который нашел на данном форуме и немного его изменил(интуитивно) и получил что мне нужно. Далее подсчеты делают формулы.
Что бы формулы считали их нужно протянуть вниз на ннное кол-во ячеек. Хочется не иметь дело с ними а все считалось в макросе и выдавалось в ячейки. то есть не нужно будет тянуть формулы по столбцам, а так же их случайно не смогут изменить и т.д.Чтоб каждый столбец всегда выполнял оду и ту же операцию вечно. Правила читал, но если позволите хотелось бы в этой теме довести задуманное до конца так как еще вопросов и пожеланий много а темы плодить не хочу.
заранее благодарю за помощь.
К сообщению приложен файл: 4626574.xls (43.0 Kb)
 
Ответить
Сообщениеприветствую всех. первым делом хочу поблагодарить создателей данного ресурса, а так же администраторов и всех кто помогает незнающим людям.
много отсюда подчерпнул но дошел до предела своих знаний и умений. сразу скажу что excel не знаю почти вобще, а так же ВБА.
задача такова:
График работы, опозданий и подсчет штрафа за них, по сотрудникам.
Если коротко, есть считывающее оборудование, которое автоматом заносит данные (код чипа)в excel документ, когда сотрудник прикладывает пластиковую карту с чипом к нему.
Чего хочется:
В приложенном фаиле есть макрос, который нашел на данном форуме и немного его изменил(интуитивно) и получил что мне нужно. Далее подсчеты делают формулы.
Что бы формулы считали их нужно протянуть вниз на ннное кол-во ячеек. Хочется не иметь дело с ними а все считалось в макросе и выдавалось в ячейки. то есть не нужно будет тянуть формулы по столбцам, а так же их случайно не смогут изменить и т.д.Чтоб каждый столбец всегда выполнял оду и ту же операцию вечно. Правила читал, но если позволите хотелось бы в этой теме довести задуманное до конца так как еще вопросов и пожеланий много а темы плодить не хочу.
заранее благодарю за помощь.

Автор - Vetali
Дата добавления - 05.02.2013 в 21:43
AlexM Дата: Среда, 06.02.2013, 00:46 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Если опоздание больше 14 часов получалось отрицательное значение.
В макросе в таком случае добавляются сутки.
Если сотрудник опоздает на работу на 1 месяц и два часа, то штраф будет за два часа.
Думаю, вам надо подумать над алгоритмом. Надо запоминать когда сотрудник был на работе в предыдущий раз и из этого рассчитывать опоздание.
См. Файл
К сообщению приложен файл: 8344732.xls (41.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЕсли опоздание больше 14 часов получалось отрицательное значение.
В макросе в таком случае добавляются сутки.
Если сотрудник опоздает на работу на 1 месяц и два часа, то штраф будет за два часа.
Думаю, вам надо подумать над алгоритмом. Надо запоминать когда сотрудник был на работе в предыдущий раз и из этого рассчитывать опоздание.
См. Файл

Автор - AlexM
Дата добавления - 06.02.2013 в 00:46
Vetali Дата: Среда, 06.02.2013, 01:16 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

AlexM,
великолепно) большое спасибо.увидев на форуме так много восторженных отзывов и благодарностей подозревал что и меня настигнет такое) но когда прошло много времени и не было ответа подумал что никому нет дело до моей проблемы(виноват, ошибался).понимаю что требуется время на решение.
ну, каждый день вроде считается по новому, то есть каждое утро при вводе данных, расчет будет делаться от 10 часов текущего дня, если я правильно понимаю. судя по тестам за пару дней.
далее, рискую быть наказанным , но попробую задать следующий вопрос.
как изменить макрос чтоб перед каждым новым месяцем где-нибудь в середине листа крупным шрифтом(скажем 20) автоматически прописывалось название месяца и год. пример: МАРТ 2013 а под этим, снова строка А1, ну "имя, время, дата и т.д."
 
Ответить
СообщениеAlexM,
великолепно) большое спасибо.увидев на форуме так много восторженных отзывов и благодарностей подозревал что и меня настигнет такое) но когда прошло много времени и не было ответа подумал что никому нет дело до моей проблемы(виноват, ошибался).понимаю что требуется время на решение.
ну, каждый день вроде считается по новому, то есть каждое утро при вводе данных, расчет будет делаться от 10 часов текущего дня, если я правильно понимаю. судя по тестам за пару дней.
далее, рискую быть наказанным , но попробую задать следующий вопрос.
как изменить макрос чтоб перед каждым новым месяцем где-нибудь в середине листа крупным шрифтом(скажем 20) автоматически прописывалось название месяца и год. пример: МАРТ 2013 а под этим, снова строка А1, ну "имя, время, дата и т.д."

Автор - Vetali
Дата добавления - 06.02.2013 в 01:16
AlexM Дата: Среда, 06.02.2013, 10:07 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Код макроса
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
      Target(1, 2).Value = Time
      Target(1, 3).Value = Date
      Target(1, 4).Value = TimeSerial(10, 0, 0)
      Target(1, 5).Value = IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
      Target(1, 6).Value = 1440 * IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
      Target(1, 7).Value = 3 * 1440 * IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
      If Month(Target.Offset(-1, 2)) < Month(Date) Then
          Dim iRow As Long
          iRow = Target.Row
          Range("A" & iRow & ":G" & iRow).Insert Shift:=xlDown
          With Range("A" & iRow & ":G" & iRow)
              .MergeCells = True
              .HorizontalAlignment = xlCenter
              .VerticalAlignment = xlCenter
              .Font.Size = 20
              .NumberFormat = "mmmm yyyy ""г."""
              .Value = Date
          End With
      End If
End If
End Sub
[/vba]

См.Файл
К сообщению приложен файл: 4626574_new.xls (43.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 06.02.2013, 10:09
 
Ответить
СообщениеКод макроса
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
      Target(1, 2).Value = Time
      Target(1, 3).Value = Date
      Target(1, 4).Value = TimeSerial(10, 0, 0)
      Target(1, 5).Value = IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
      Target(1, 6).Value = 1440 * IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
      Target(1, 7).Value = 3 * 1440 * IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
      If Month(Target.Offset(-1, 2)) < Month(Date) Then
          Dim iRow As Long
          iRow = Target.Row
          Range("A" & iRow & ":G" & iRow).Insert Shift:=xlDown
          With Range("A" & iRow & ":G" & iRow)
              .MergeCells = True
              .HorizontalAlignment = xlCenter
              .VerticalAlignment = xlCenter
              .Font.Size = 20
              .NumberFormat = "mmmm yyyy ""г."""
              .Value = Date
          End With
      End If
End If
End Sub
[/vba]

См.Файл

Автор - AlexM
Дата добавления - 06.02.2013 в 10:07
Vetali Дата: Среда, 06.02.2013, 10:17 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

AlexM,

Шикарно! Еще одно спасибо. А можно после каждого месяца, следующая строка будет как строка А1, то есть с названием столбцов? что бы по прошествию 10 месяцев не возвращаться вверх и смотреть как столбцы называются?

Почему ничего не происходит при нажатии плюсика? (просто обновляется страница и все)
 
Ответить
СообщениеAlexM,

Шикарно! Еще одно спасибо. А можно после каждого месяца, следующая строка будет как строка А1, то есть с названием столбцов? что бы по прошествию 10 месяцев не возвращаться вверх и смотреть как столбцы называются?

Почему ничего не происходит при нажатии плюсика? (просто обновляется страница и все)

Автор - Vetali
Дата добавления - 06.02.2013 в 10:17
Vetali Дата: Среда, 06.02.2013, 10:32 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

вот еще проблемка. после удаления всех записей и ввода новой выскакивает ошибка, и потом после ввода дальнейших данных месяц не проставляется.
К сообщению приложен файл: 7337716.jpg (42.8 Kb)


Сообщение отредактировал Vetali - Среда, 06.02.2013, 10:34
 
Ответить
Сообщениевот еще проблемка. после удаления всех записей и ввода новой выскакивает ошибка, и потом после ввода дальнейших данных месяц не проставляется.

Автор - Vetali
Дата добавления - 06.02.2013 в 10:32
AlexM Дата: Среда, 06.02.2013, 10:58 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (Vetali)
можно после каждого месяца, следующая строка будет как строка А1

Думаю тут надо закрепить области. Почитайте в справке как это делается.
На примере Эксель 2003
Кликнуть по А2 раз. Окно - Закрепить области
По второму вопросу. Ошибка появилась при вводе "а" в А2 Потому что в макросе сравниваются даты из вводимой строки и предыдущей. В предыдущей строке даты нет
Что надо сделать Перед строкой
[vba]
Код
    If Month(Target.Offset(-1, 2)) < Month(Date) Then
[/vba]
вставляете строку обработки ошибок
[vba]
Код
On Error GoTo Error
[/vba]
А конец макроса дополняете меткой
[vba]
Код
            .Value = Date
         End With
     End If
Error:
End If
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (Vetali)
можно после каждого месяца, следующая строка будет как строка А1

Думаю тут надо закрепить области. Почитайте в справке как это делается.
На примере Эксель 2003
Кликнуть по А2 раз. Окно - Закрепить области
По второму вопросу. Ошибка появилась при вводе "а" в А2 Потому что в макросе сравниваются даты из вводимой строки и предыдущей. В предыдущей строке даты нет
Что надо сделать Перед строкой
[vba]
Код
    If Month(Target.Offset(-1, 2)) < Month(Date) Then
[/vba]
вставляете строку обработки ошибок
[vba]
Код
On Error GoTo Error
[/vba]
А конец макроса дополняете меткой
[vba]
Код
            .Value = Date
         End With
     End If
Error:
End If
End Sub
[/vba]

Автор - AlexM
Дата добавления - 06.02.2013 в 10:58
Vetali Дата: Среда, 06.02.2013, 11:31 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

AlexM,
Спасибо, с ошибкой получилось. Про области попробую почитать и разобраться.
Вот с чем столкнулся еще, после подсчета итогов и ввод данных в ручную, при поступлении данных в А1 месяц не проставляется.
Возможно ли сделать автоматический подсчет итогов по каждому из сотрудников по окончанию месяца, а потом уже вставить название следующего месяца, и после этого уже дальше в штатном режиме ввод данных и подсчеты как в приложенном ниже файле?
К сообщению приложен файл: 7133113.xls (41.5 Kb)
 
Ответить
СообщениеAlexM,
Спасибо, с ошибкой получилось. Про области попробую почитать и разобраться.
Вот с чем столкнулся еще, после подсчета итогов и ввод данных в ручную, при поступлении данных в А1 месяц не проставляется.
Возможно ли сделать автоматический подсчет итогов по каждому из сотрудников по окончанию месяца, а потом уже вставить название следующего месяца, и после этого уже дальше в штатном режиме ввод данных и подсчеты как в приложенном ниже файле?

Автор - Vetali
Дата добавления - 06.02.2013 в 11:31
AlexM Дата: Среда, 06.02.2013, 13:45 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (Vetali)
Возможно ли сделать

Надеюсь идей больше не осталось.

Посмотрите файл.
К сообщению приложен файл: 7133113_new.xls (52.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 06.02.2013, 13:58
 
Ответить
Сообщение
Цитата (Vetali)
Возможно ли сделать

Надеюсь идей больше не осталось.

Посмотрите файл.

Автор - AlexM
Дата добавления - 06.02.2013 в 13:45
Vetali Дата: Среда, 06.02.2013, 14:11 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

AlexM,
Класс. Идейка еще одна: хотелось бы запретить изменение уже заполненных данными ячеек. а в свободные чтоб можно было писать, заметки ну или другой текст.хотелось бы макросом, чтоб можно было потом просто скопировать этот макрос в любой файл и все сразу работало и приняло уже готовый вид того что есть.
угостил бы вас пивом, да тут никак. плюсануть тоже почему-то не получается.при первой возможности скромно плюсану яндекс карточкой(сообщу в личке).
 
Ответить
СообщениеAlexM,
Класс. Идейка еще одна: хотелось бы запретить изменение уже заполненных данными ячеек. а в свободные чтоб можно было писать, заметки ну или другой текст.хотелось бы макросом, чтоб можно было потом просто скопировать этот макрос в любой файл и все сразу работало и приняло уже готовый вид того что есть.
угостил бы вас пивом, да тут никак. плюсануть тоже почему-то не получается.при первой возможности скромно плюсану яндекс карточкой(сообщу в личке).

Автор - Vetali
Дата добавления - 06.02.2013 в 14:11
Vetali Дата: Четверг, 07.02.2013, 10:00 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

AlexM,
Доброго времени. Вот какая проблемка обнаружилась. Вы говорили что если больше 14 часов идут отрицательные значения. Я над этим сильно не задумался видать. В изначальном файле если приход был раньше 10:00 скажем на час то да, считалось в минусе так как человек пришел раньше а не опоздал на 23 часа, исходя из этого штраф считался в минус так как человек таким образом в итоге мог отработать опоздания за другие дни и компенсировать штрафы. Например, 5 дней опоздания составляли 12 мин. на 6-й день человек вышел на час раньше и штраф получился -180 что выходит по нолям с 5-ю днями опозданий.Вот этот момент только можно вернуть обратно с небольшими пояснениями как что нужно изменить чтоб можно было при необходимости использовать один из этих вариантов?
Е сли не ошибаюсь то изменения должны быть в этой строке:
[vba]
Код
Target(1, 5).Value = IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
[/vba]
только не знаю как..
заранее спасибо.
 
Ответить
СообщениеAlexM,
Доброго времени. Вот какая проблемка обнаружилась. Вы говорили что если больше 14 часов идут отрицательные значения. Я над этим сильно не задумался видать. В изначальном файле если приход был раньше 10:00 скажем на час то да, считалось в минусе так как человек пришел раньше а не опоздал на 23 часа, исходя из этого штраф считался в минус так как человек таким образом в итоге мог отработать опоздания за другие дни и компенсировать штрафы. Например, 5 дней опоздания составляли 12 мин. на 6-й день человек вышел на час раньше и штраф получился -180 что выходит по нолям с 5-ю днями опозданий.Вот этот момент только можно вернуть обратно с небольшими пояснениями как что нужно изменить чтоб можно было при необходимости использовать один из этих вариантов?
Е сли не ошибаюсь то изменения должны быть в этой строке:
[vba]
Код
Target(1, 5).Value = IIf(Time - TimeSerial(10, 0, 0) < 0, Time - TimeSerial(10, 0, 0) + 1, Time - TimeSerial(10, 0, 0))
[/vba]
только не знаю как..
заранее спасибо.

Автор - Vetali
Дата добавления - 07.02.2013 в 10:00
AlexM Дата: Четверг, 07.02.2013, 11:12 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
В макросе три строки, в которых проверка на отрицательную разницу времени. Одну из них вы показали.
Чтобы не "ломать" код, можно вместо +1 сделать +N
N - переменная. При N=1 будет обработка как сейчас, а при N=0 - как раньше
В новом файле это сделано. N=1
В новом файле введена защита. Не знаю так вы хотели или по другому.
Пароль снятия защиты - 123 Поставить можно запустив макрос в модуле1
К сообщению приложен файл: 7133113_newz.xls (44.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВ макросе три строки, в которых проверка на отрицательную разницу времени. Одну из них вы показали.
Чтобы не "ломать" код, можно вместо +1 сделать +N
N - переменная. При N=1 будет обработка как сейчас, а при N=0 - как раньше
В новом файле это сделано. N=1
В новом файле введена защита. Не знаю так вы хотели или по другому.
Пароль снятия защиты - 123 Поставить можно запустив макрос в модуле1

Автор - AlexM
Дата добавления - 07.02.2013 в 11:12
Vetali Дата: Четверг, 07.02.2013, 11:50 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

AlexM,
Да, думаю то что нужно! ОГРОМНОЕ спасибо. Я так понимаю макрос Protect нужно запускать каждый раз при открытии файла вручную, иначе при вводе данных появляется ошибка:Нельзя установить свойство Locked класса Range/
 
Ответить
СообщениеAlexM,
Да, думаю то что нужно! ОГРОМНОЕ спасибо. Я так понимаю макрос Protect нужно запускать каждый раз при открытии файла вручную, иначе при вводе данных появляется ошибка:Нельзя установить свойство Locked класса Range/

Автор - Vetali
Дата добавления - 07.02.2013 в 11:50
AlexM Дата: Четверг, 07.02.2013, 12:25 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
А так?
К сообщению приложен файл: 1767305.xls (47.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеА так?

Автор - AlexM
Дата добавления - 07.02.2013 в 12:25
Vetali Дата: Четверг, 07.02.2013, 15:39 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

Да! Волшебно! Спасибо большое!

конечно идеи еще есть но совесть не позволяет мне больше вас мучить)
 
Ответить
СообщениеДа! Волшебно! Спасибо большое!

конечно идеи еще есть но совесть не позволяет мне больше вас мучить)

Автор - Vetali
Дата добавления - 07.02.2013 в 15:39
AlexM Дата: Четверг, 07.02.2013, 17:36 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (Vetali)
конечно идеи еще есть

Вы напишите все идеи разом.
Может быть будет возможность их реализовать.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (Vetali)
конечно идеи еще есть

Вы напишите все идеи разом.
Может быть будет возможность их реализовать.

Автор - AlexM
Дата добавления - 07.02.2013 в 17:36
Vetali Дата: Четверг, 07.02.2013, 18:14 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

Не, я уже стесняюсь) более того думаю что дальше только сложнее. конечно предел мечтаний, это уже управление файлом, то есть менюшка где можно задать каждому сотруднику свое начало рабочего времени, так как один с 10 другой с 9 а третий с 9:45, тут же при необходимости менять размер штрафа за минуту который по умолчанию 3 и т.д. (не заморачивайтесь).а из простых действий в целях эстетичности можно оставить 1-2 пустые строки между последней записью и первым итогом, но это не принципиально мне и так все нравится, и так много сделано!
Ах, вот еще что...Как бы сделать так чтоб один сотрудник не мог ввести более одной записи в день? а то ведь может случайно ввести 2 записи а итог посчитается как 2 опоздания за 1 день..


Сообщение отредактировал Vetali - Четверг, 07.02.2013, 18:42
 
Ответить
СообщениеНе, я уже стесняюсь) более того думаю что дальше только сложнее. конечно предел мечтаний, это уже управление файлом, то есть менюшка где можно задать каждому сотруднику свое начало рабочего времени, так как один с 10 другой с 9 а третий с 9:45, тут же при необходимости менять размер штрафа за минуту который по умолчанию 3 и т.д. (не заморачивайтесь).а из простых действий в целях эстетичности можно оставить 1-2 пустые строки между последней записью и первым итогом, но это не принципиально мне и так все нравится, и так много сделано!
Ах, вот еще что...Как бы сделать так чтоб один сотрудник не мог ввести более одной записи в день? а то ведь может случайно ввести 2 записи а итог посчитается как 2 опоздания за 1 день..

Автор - Vetali
Дата добавления - 07.02.2013 в 18:14
AlexM Дата: Пятница, 08.02.2013, 08:46 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Посмотрите файл.
Цитата (Vetali)
из простых действий в целях эстетичности

Лично мне такая эстетика не понравилась, да и действия "простые", может быть сами справитесь.
Честно говоря, мне код не очень нравится и причина в том, что состоит из кусочков, реализующих новые идеи.
Если задача была поставлена сразу вся, то код был бы компактнее и выполнялся быстрее.

Если найдете ошибки, то постараюсь исправить.
Новые идеи не принимаю.

Цитата (AlexM)
чтоб один сотрудник не мог ввести более одной записи в день

Чтобы сотрудник не ввел себя дважды я сделал, но он сможет ввести метку за другого.
Еще можно ввести метку с ошибкой. По идее можно сделать проверку на наличие метки в списке или ввод в ячейку делать из выпадающего списка.
Думаю, что идеи еще можно собирать, чтобы программа учитывала все нюансы.
Во всяком случае, то что сделано дает представление практически неограниченных возможностях Excel, поэтому есть стимул его познавать.
К сообщению приложен файл: 9767305_new.xls (49.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 08.02.2013, 10:13
 
Ответить
СообщениеПосмотрите файл.
Цитата (Vetali)
из простых действий в целях эстетичности

Лично мне такая эстетика не понравилась, да и действия "простые", может быть сами справитесь.
Честно говоря, мне код не очень нравится и причина в том, что состоит из кусочков, реализующих новые идеи.
Если задача была поставлена сразу вся, то код был бы компактнее и выполнялся быстрее.

Если найдете ошибки, то постараюсь исправить.
Новые идеи не принимаю.

Цитата (AlexM)
чтоб один сотрудник не мог ввести более одной записи в день

Чтобы сотрудник не ввел себя дважды я сделал, но он сможет ввести метку за другого.
Еще можно ввести метку с ошибкой. По идее можно сделать проверку на наличие метки в списке или ввод в ячейку делать из выпадающего списка.
Думаю, что идеи еще можно собирать, чтобы программа учитывала все нюансы.
Во всяком случае, то что сделано дает представление практически неограниченных возможностях Excel, поэтому есть стимул его познавать.

Автор - AlexM
Дата добавления - 08.02.2013 в 08:46
Vetali Дата: Пятница, 08.02.2013, 10:59 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

Цитата (AlexM)
стимул его познавать.

вы правы! хватило бы времени только...
В любом случае вы очень много сделали и помогли.Спасибо.
В последнем прикрепленном файле возникает такая проблема:
вводится запись все считается и переходит на нижнюю строку чтоб ввести новую запись, это строка автоматически считается почему-то от 00:00 нужного времени и соответственно данные не верные.если запись ввести повторно то да, не позволяется, но остается пустая строка и я подозреваю что если следующая строка сравнивается с предыдущей где-нибудь в операциях или функциях, то тоже возникнет ошибка.
 
Ответить
Сообщение
Цитата (AlexM)
стимул его познавать.

вы правы! хватило бы времени только...
В любом случае вы очень много сделали и помогли.Спасибо.
В последнем прикрепленном файле возникает такая проблема:
вводится запись все считается и переходит на нижнюю строку чтоб ввести новую запись, это строка автоматически считается почему-то от 00:00 нужного времени и соответственно данные не верные.если запись ввести повторно то да, не позволяется, но остается пустая строка и я подозреваю что если следующая строка сравнивается с предыдущей где-нибудь в операциях или функциях, то тоже возникнет ошибка.

Автор - Vetali
Дата добавления - 08.02.2013 в 10:59
AlexM Дата: Пятница, 08.02.2013, 11:15 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Ничего не понял.
Опишите свои действия шаг за шагом и что получается.
В файле есть 5 строк. Начинаем ввод в А6. Так как месяц другой, считаются Итоги и вставляется заголовок месяца.
Теперь ввод делаем в А10. Теперь продолжайте вы. до появления 00:00

и можно приложить файл, в котором так получилось.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеНичего не понял.
Опишите свои действия шаг за шагом и что получается.
В файле есть 5 строк. Начинаем ввод в А6. Так как месяц другой, считаются Итоги и вставляется заголовок месяца.
Теперь ввод делаем в А10. Теперь продолжайте вы. до появления 00:00

и можно приложить файл, в котором так получилось.

Автор - AlexM
Дата добавления - 08.02.2013 в 11:15
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!