Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Мне надо была делать учет рабочего времени сотрудников. Мне помогли это делать и потом я кое-что меняла в этом макросе. Вроде все работает. Но, иногда получается такие файлы (исходные данные берется из TXT файла), для них программа не правильно работает.
Например, при расчета 23 12-08-2014 8-16-39.txt все нормально. А в следующий файл (24 12-08-2014 8-16-58.txt) совсем по другому получается: столбцы меняется местами и т.д. Но, между этих двух файлами по структуре ни какая разница не нашла. Помогите пожалуйста в чем моя проблема.

К сообщению приложен файл (22.rar - 79Kb) cкачать
15 авг 14, 14:26    [16446632]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Во обе файлах структура одинаковая.
Порядок столбцов и их расположение не меняется.
Но, почему-то результат по разному получается.
18 авг 14, 08:18    [16453854]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Вряд ли кто-то захочет разбираться ради интереса, что вы подразумеваете под "по другому", "меняются местами", не говоря о том, что оказывается программа работает только один раз, а потом надо восстанавливать файлы (а кто об этом должен был предупредить?) и т.п.

Я вот за 5 минут ковыряния не смог понять, в чем у вас проблема со вторым файлом, то есть что значит "результат по разному".

Пишите подробно, что нужно сделать, как правильно запускать программу, что вы ожидаете увидеть, что вместо этого получается, тогда можно будет рассчитывать на какую-то помощь.
18 авг 14, 08:42    [16453899]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro, да , Вы правы. Извините, за это. Попробую, еще раз.
После каждого запуска программы исходные файлы отмечается как уже обработанный, чтобы 2-й раз не использовать эти файлы.

Для ясности в папке можно оставит только 1-й файл (23 12-08-2014 8-16-39.txt) или убрать 1-й символ (#) в название файла и сам макрос. При расчета в листбоксе видно будет вот эти данные Data N karta FIO Narusheniya Otdel, т.е., 1-й (Data=Базовое время), 9-й, 8-й (N karta=Номер карты) и 10-й(FIO=Имя) столбцы из текстового файла. Narusheniya и Otdel "от руки" пишутся. Здесь все нормально.


А при расчета другого файла (24 12-08-2014 8-16-58.txt) вместо 8-го столбца 3-й(Тип), вместо 10-го столбца 4-й (Состояние) столбцы из текстового файла получается. А вместо Narusheniya и Otdel соответственно 5-й (Приор.) и 6-й (Считыватель) столбцы получается.

По моему во обе файлах структура одинаковая. А почему такая разные результаты- вот это я не могу понять
18 авг 14, 10:19    [16454324]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Во втором файле в отличие от первого нет нарушителей
Поэтому вместо того, чтобы вывести нарушителей, на первый лист просто фигачатся необработанные изначальные данные

With Nar
    If .Count Then
        ReDim Arr(1 To .Count, 5)
            For i = 1 To .Count
                Vch = .Item(i & "")
                Arr(i, 0) = Vch(0): Arr(i, 1) = Vch(1):
                Arr(i, 2) = Vch(2): Arr(i, 3) = Vch(3):
                Arr(i, 4) = Vch(4): Arr(i, 5) = Vch(5)
            Next
    End If
End With

With ThisWorkbook.Worksheets(1)
     R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
     .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
End With
18 авг 14, 12:39    [16455180]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Тогда, что мне надо делать чтобы если в файле нет нарушителей программа для этого файла ничего не делал?
18 авг 14, 13:20    [16455719]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Добавить дополнительное условие, например так
If Nar.Count Then
  With ThisWorkbook.Worksheets(1)
       R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
       .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
  End With
End If
18 авг 14, 13:36    [16455916]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Добавила, но для некоторых файлов эта проблема остается.
18 авг 14, 14:06    [16456138]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Помогите пожалуйста, очень надо. Добавила условия, но проблема остается.
19 авг 14, 10:53    [16460728]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Aqil_F
для некоторых файлов
вот вы сами как думаете, не имея этих "некоторых файлов" я могу вам помочь чем-то?
19 авг 14, 10:55    [16460747]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro,
19 авг 14, 10:59    [16460784]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest


К сообщению приложен файл (22.rar - 85Kb) cкачать
19 авг 14, 11:00    [16460789]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
Код, который вставляет неверные данные, из вашего файла никуда не делся
With ThisWorkbook.Worksheets(1)
     R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
     .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
End With
19 авг 14, 11:07    [16460843]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro, спасибо все получилась.

Я еще хотела не удалить каждый раз информацию из лист1. Т.е., хочу чтобы новую информацию добавить в 1-ю свободную строку.
И еще понимаю что-то здесь надо менять:
If N = 0 Then .Worksheets(1).UsedRange.Offset (1).ClearContents
              Naruschiteli
              Replase_Fale_Name fn, My_Path_File
              N = N + 1
            End If


Но, как? Не понимаю. Если не трудно, помогите пожалуйста и в этом вопросе, пожалуйста.
19 авг 14, 14:26    [16462666]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
убрать первую строку
19 авг 14, 15:59    [16463364]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Aqil_F
Guest
Shocker.Pro, первая строка- эта значить весь IF ... END if убрать, или только

 .Worksheets(1).UsedRange.Offset (1).ClearContents
?
20 авг 14, 06:59    [16466013]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
первая строка - это первая строка
End If в первой строке нет
20 авг 14, 08:55    [16466162]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
Доброго времени суток, уважаемые! Поставили задачу разработать табель учета рабочего времени. Так вот, почти сделал, и ключевое слово здесь "почти".
Столкнулся с рядом проблем.
проблема первая: есть формула подсчета времени переработки, там где время работы 8 часов считает нормально, но если больше то все полный абзац.
проблема вторая: эта же формула когда считает время причем приближенное к 24 часам, творит все что угодно, и вроде правильно считает, но с минусом, минус убираю выходит фигня.
проблема третья: опять же формулы отказываются считать время ночное с 19:00 часов
проблема четвертая: есть итоговая таблица по времени работы куда с ежедневных табличек (условно отдельно лист) должны аккумулироваться данные, но это опять же происходит через раз. Да табличка итоговая немного сложная, но если честно то я ушатался с ней, может подскажите как прописать универсальную формулу либо поможете с макросами.
Помогите пожалуйста, век помнить буду!!!!!!!

Да не судите строго, я работать с экселем только учусь.

К сообщению приложен файл (файлпример4.rar - 142Kb) cкачать
26 мар 19, 10:16    [21843459]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Готов помочь на платной основе или бесплатно, но тогда давайте конкретные вопросы по формулам или ждите, если кто захочет вникать и разбираться в Ваших задачах и проблемах.
26 мар 19, 10:49    [21843494]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
RSB64
Member

Откуда:
Сообщений: 11
Спасибо, от оказания платной помощи откажусь.

Давайте пробовать пошагово, но даром:)

=ЕСЛИ(G14-0,5+(G14>"12:")<0;"-";"")&ТЕКСТ(ABS(G14-0,5+(G14<"12:"));"ч:мм") эта формула от общего количества трудочасов в день при вычитании должна давать остаток (образно говоря отработано 8 часов 25 минут, в остатке имеем 25 минут). Но если человек не работал и количество трудочасов 0, то формула все равно проводит вычитание и мы имеем -12 часов.

Так вот что и куда нужно добавить, сможет кто нибудь подсказать, чтобы в этом случае получался НОЛЬ.

Цель: унификация формулы
26 мар 19, 12:04    [21843575]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
RSB64,

Если настройки локали будут таковы, что ч это не часы, а мм это не минуты, то отображаться будет "ч:мм".

Чтобы отображался ноль в Вашей формуле, то добавьте условие проверки на количество часов.
26 мар 19, 12:19    [21843590]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
RSB64
G14>"12:"
А меня вот это очень сильно смущает. Дата сравнивается с текстом. Что там будет в результате - вообще плохо детерминируемо.
26 мар 19, 12:29    [21843609]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
+
Shocker.Pro,

Там вообще без слез не глянешь.
26 мар 19, 12:30    [21843614]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20468
М-да. А в ячейке G14, судя по файлу, лежит не дата-время, а текст. То есть производится операция над текстом и числом "G14-0,5", судя по всему текст неявно превращается в дату, потом сравнивается уже как текст... та жуть, тут вообще непонятно, как хоть что-то работает.


RSB64, я предлагаю начать с освоения вот этого

К сообщению приложен файл. Размер - 22Kb
26 мар 19, 12:40    [21843629]     Ответить | Цитировать Сообщить модератору
 Re: учет рабочего времени сотрудников  [new]
iMrTidy
Member

Откуда:
Сообщений: 773
Shocker.Pro,

Можно, конечно, парсить дату, а можно сделать короткими формулами с одним условием в каждой, и применить пользовательский формат. Пользовательский формат будет работать корректно в любой локализации.
26 мар 19, 13:05    [21843659]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Office Ответить