Здравствуйте друзья! Очень затрудняюсь в решении следующей задачи. Помогите пожалуйста! Имеются файлы которые получаются аппаратом регистрации времени работников. Они имеют название к примеру для месяца декабрь от ReportOffice01.12.2019 до ReportOffice31.12.2019. Внутри файлов имеются два листа "Отчёт" и "InOut". В ОБЩЕМ ФАЙЛЕ хотелось бы получить последовательно по числам месяца объединённых данных в моём случае по отделу "IT&Camera". Можно ли это сделать с помощью макросов? Спасибо всем кто откликнулся!
Здравствуйте друзья! Очень нужна Ваша помощь! Имеется отчёт прихода и ухода работников (Example.xlsx). Необходим макрос для заполнения пропущенных дат с учетом наименьшего и наибольшего числа дат (дело в том, что табельный период нашей организации начинается 20 числа каждого месяца и заканчивается 19 числа следующего месяца). Поэтому для каждого уникального ID должны быть даты начиная с 20.MM.YYYY по 19.MM.YYYY. В данном отчёте за уникальное значение необходимо брать идентификатор работника ID (первый столбец), а остальные значения как Department (отдел), No (табельный номер работника) являются переменными, так как в течении месяца эти параметры могут меняться. В файле Example.xlsx, на первом листе исходный отчет, на втором листе пример того чего хотелось бы получить после работы макроса. Друзья пожалуйста помогите! Спасибо за Ваше внимание!
Здравствуйте друзья! У меня имеется макрос, который был великодушно написан мне пользователем SAS888, за что огромное спасибо ему. Вот он:
Код
Sub InsRows()
Dim i As Long, j As Long, k As Long, m As Long, n As Long
Dim maDt As Long, miDt As Long, a(), b(), z, q
Application.ScreenUpdating = False
Set z = CreateObject("Scripting.Dictionary")
i = Cells(Rows.Count, 1).End(xlUp).Row
a = Range("A3:P" & i).Value
miDt = Application.Min(Range("H3:H" & i))
maDt = Application.Max(Range("H3:H" & i))
For i = 1 To UBound(a, 1): z(a(i, 2)) = i: Next
ReDim b(1 To z.Count * (maDt - miDt + 1), 1 To UBound(a, 2))
For Each q In z.Items
For j = miDt To maDt
k = k + 1
For m = 1 To 7
b(k, m) = a(q, m)
b(k, 8) = j
For i = 1 To UBound(a, 1)
If a(i, 8) = j Then
If a(i, 2) = b(k, 2) Then
For n = 9 To 16: b(k, n) = a(i, n): Next
Exit For
End If: End If: Next: Next: Next: Next
[A3].Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub
Работает превосходно! Но обрабатывает данные до строки не весь отчёт, а дальше все верх дном. Помогите пожалуйста сделать этот макрос работающим до бесконечности. Спасибо большое за Ваше внимание!
Здравствуйте друзья! У меня имеется макрос, который был великодушно написан мне пользователем SAS888, за что огромное спасибо ему. Макрос работает превосходно! Но обрабатывает данные до строки 70, а дальше все верх дном. Помогите пожалуйста сделать этот макрос работающим до бесконечности. Спасибо большое за Ваше внимание!
Здравствуйте, дорогие форумчаны! Есть отчет прихода на работу работников, как в файле Example. Для этого отчёта необходимо написать макрос который бы, вписывал строки с пропущенными датами, учитывая наименьшее и наибольшее число даты. Например, в файле примера наименьшее это 23/05/20018, а наибольшее 28/05/2018. И в определенном периоде все эти даты должны вписаться в отчёт. В файле Example есть два листа. Первый лист показывает то, что имеется в начале. Второй лист показывает то, что хотелось бы получить в результате работы макроса. Заранее спасибо Вам друзья!!!
Здравствуйте дорогие форумчане, знатоки Excel!!! У меня есть отчет прихода на работу работников, как в файле примере. Для этого вида отчёта нужно написать макрос который бы, вписывал строки с пропущенными датами. В файле примера имеются два листа. Первый лист показывает то, что имеется в начале. Второй лист показывает то, что хотелось бы получить в результате работы макроса. Заранее спасибо!!!