Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / учет рабочего времени сотрудников / 25 сообщений из 43, страница 1 из 2
15.08.2014, 14:26
    #38721290
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Мне надо была делать учет рабочего времени сотрудников. Мне помогли это делать и потом я кое-что меняла в этом макросе. Вроде все работает. Но, иногда получается такие файлы (исходные данные берется из TXT файла), для них программа не правильно работает.
Например, при расчета 23 12-08-2014 8-16-39.txt все нормально. А в следующий файл (24 12-08-2014 8-16-58.txt) совсем по другому получается: столбцы меняется местами и т.д. Но, между этих двух файлами по структуре ни какая разница не нашла. Помогите пожалуйста в чем моя проблема.
...
Рейтинг: 0 / 0
18.08.2014, 08:18
    #38722166
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Во обе файлах структура одинаковая.
Порядок столбцов и их расположение не меняется.
Но, почему-то результат по разному получается.
...
Рейтинг: 0 / 0
18.08.2014, 08:42
    #38722170
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Вряд ли кто-то захочет разбираться ради интереса, что вы подразумеваете под "по другому", "меняются местами", не говоря о том, что оказывается программа работает только один раз, а потом надо восстанавливать файлы (а кто об этом должен был предупредить?) и т.п.

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

Пишите подробно, что нужно сделать, как правильно запускать программу, что вы ожидаете увидеть, что вместо этого получается, тогда можно будет рассчитывать на какую-то помощь.
...
Рейтинг: 0 / 0
18.08.2014, 10:19
    #38722222
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
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-й (Считыватель) столбцы получается.

По моему во обе файлах структура одинаковая. А почему такая разные результаты- вот это я не могу понять
...
Рейтинг: 0 / 0
18.08.2014, 12:39
    #38722371
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Во втором файле в отличие от первого нет нарушителей
Поэтому вместо того, чтобы вывести нарушителей, на первый лист просто фигачатся необработанные изначальные данные

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
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
...
Рейтинг: 0 / 0
18.08.2014, 13:20
    #38722435
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Тогда, что мне надо делать чтобы если в файле нет нарушителей программа для этого файла ничего не делал?
...
Рейтинг: 0 / 0
18.08.2014, 13:36
    #38722455
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Добавить дополнительное условие, например так
Код: vbnet
1.
2.
3.
4.
5.
6.
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
...
Рейтинг: 0 / 0
18.08.2014, 14:06
    #38722499
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Добавила, но для некоторых файлов эта проблема остается.
...
Рейтинг: 0 / 0
19.08.2014, 10:53
    #38723197
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Помогите пожалуйста, очень надо. Добавила условия, но проблема остается.
...
Рейтинг: 0 / 0
19.08.2014, 10:55
    #38723199
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Aqil_Fдля некоторых файловвот вы сами как думаете, не имея этих "некоторых файлов" я могу вам помочь чем-то?
...
Рейтинг: 0 / 0
19.08.2014, 10:59
    #38723205
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Shocker.Pro,
...
Рейтинг: 0 / 0
19.08.2014, 11:00
    #38723206
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
...
Рейтинг: 0 / 0
19.08.2014, 11:07
    #38723215
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Код, который вставляет неверные данные, из вашего файла никуда не делся
Код: vbnet
1.
2.
3.
4.
With ThisWorkbook.Worksheets(1)
     R = .Cells(Rows.Count, 1).End(xlUp).Row + 1
     .Cells(R, 1).Resize(UBound(Arr), 6) = Arr
End With
...
Рейтинг: 0 / 0
19.08.2014, 14:26
    #38723502
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Shocker.Pro, спасибо все получилась.

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



Но, как? Не понимаю. Если не трудно, помогите пожалуйста и в этом вопросе, пожалуйста.
...
Рейтинг: 0 / 0
19.08.2014, 15:59
    #38723611
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
убрать первую строку
...
Рейтинг: 0 / 0
20.08.2014, 06:59
    #38724011
Aqil_F
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Shocker.Pro, первая строка- эта значить весь IF ... END if убрать, или только

Код: vbnet
1.
 .Worksheets(1).UsedRange.Offset (1).ClearContents

?
...
Рейтинг: 0 / 0
20.08.2014, 08:55
    #38724042
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
первая строка - это первая строка
End If в первой строке нет
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
26.03.2019, 10:16
    #39791322
RSB64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Доброго времени суток, уважаемые! Поставили задачу разработать табель учета рабочего времени. Так вот, почти сделал, и ключевое слово здесь "почти".
Столкнулся с рядом проблем.
проблема первая: есть формула подсчета времени переработки, там где время работы 8 часов считает нормально, но если больше то все полный абзац.
проблема вторая: эта же формула когда считает время причем приближенное к 24 часам, творит все что угодно, и вроде правильно считает, но с минусом, минус убираю выходит фигня.
проблема третья: опять же формулы отказываются считать время ночное с 19:00 часов
проблема четвертая: есть итоговая таблица по времени работы куда с ежедневных табличек (условно отдельно лист) должны аккумулироваться данные, но это опять же происходит через раз. Да табличка итоговая немного сложная, но если честно то я ушатался с ней, может подскажите как прописать универсальную формулу либо поможете с макросами.
Помогите пожалуйста, век помнить буду!!!!!!!

Да не судите строго, я работать с экселем только учусь.
...
Рейтинг: 0 / 0
26.03.2019, 10:49
    #39791347
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
RSB64,

Готов помочь на платной основе или бесплатно, но тогда давайте конкретные вопросы по формулам или ждите, если кто захочет вникать и разбираться в Ваших задачах и проблемах.
...
Рейтинг: 0 / 0
26.03.2019, 12:04
    #39791399
RSB64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Спасибо, от оказания платной помощи откажусь.

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

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

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

Цель: унификация формулы
...
Рейтинг: 0 / 0
26.03.2019, 12:19
    #39791410
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
RSB64,

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

Чтобы отображался ноль в Вашей формуле, то добавьте условие проверки на количество часов.
...
Рейтинг: 0 / 0
26.03.2019, 12:29
    #39791420
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
RSB64G14>"12:"А меня вот это очень сильно смущает. Дата сравнивается с текстом. Что там будет в результате - вообще плохо детерминируемо.
...
Рейтинг: 0 / 0
26.03.2019, 12:30
    #39791423
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Shocker.Pro,

Там вообще без слез не глянешь.
...
Рейтинг: 0 / 0
26.03.2019, 12:40
    #39791431
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
М-да. А в ячейке G14, судя по файлу, лежит не дата-время, а текст. То есть производится операция над текстом и числом "G14-0,5", судя по всему текст неявно превращается в дату, потом сравнивается уже как текст... та жуть, тут вообще непонятно, как хоть что-то работает.


RSB64, я предлагаю начать с освоения вот этого
...
Рейтинг: 0 / 0
26.03.2019, 13:05
    #39791447
iMrTidy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
учет рабочего времени сотрудников
Shocker.Pro,

Можно, конечно, парсить дату, а можно сделать короткими формулами с одним условием в каждой, и применить пользовательский формат. Пользовательский формат будет работать корректно в любой локализации.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / учет рабочего времени сотрудников / 25 сообщений из 43, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]