Добрый день!Прошу помощи в решении небольшой задачки! Существует табель учета рабочего времени в нем "Х" не рабочий день, нужно что бы со всего табеля выводилась информация о не рабочих днях в другую табличку по каждому человеку как указано в примеру желтым цветом, если это конечно возможно (в табеле около 200 объектов и 3000 строк)
Добрый день!Прошу помощи в решении небольшой задачки! Существует табель учета рабочего времени в нем "Х" не рабочий день, нужно что бы со всего табеля выводилась информация о не рабочих днях в другую табличку по каждому человеку как указано в примеру желтым цветом, если это конечно возможно (в табеле около 200 объектов и 3000 строк)kenn
Добрый день! Проект решения: 1. Преобразовать заголовок табеля с датами в однострочный в другой таблице. 2. Создать в ней отдельный столбец E для перечня дат отсутствия. 3. Запустить макрос для диапазона
Код
F3:AJ23
. Диапазон можно расширить, указав параметры цикла в макросе. 4. Макрос записывает перечень дат отсутствия в соответствующие ячейки столбца E.
[vba]
Код
Sub Merge_To_One_Cell() Dim icur, jcur As Integer Dim sMergeStr As String Dim sMergeStr1 As String Dim sMergetab0 As String ActiveWorkbook.Sheets("input_table").Select ' ActiveSheet.Select For icur = 4 To 22 Step 1
sMergetab1 = " "
For jcur = 6 To 31 Step 1 sMergeStr = CStr(ActiveWorkbook.Sheets("input_table").Cells(icur, jcur))
Добрый день! Проект решения: 1. Преобразовать заголовок табеля с датами в однострочный в другой таблице. 2. Создать в ней отдельный столбец E для перечня дат отсутствия. 3. Запустить макрос для диапазона
Код
F3:AJ23
. Диапазон можно расширить, указав параметры цикла в макросе. 4. Макрос записывает перечень дат отсутствия в соответствующие ячейки столбца E.
[vba]
Код
Sub Merge_To_One_Cell() Dim icur, jcur As Integer Dim sMergeStr As String Dim sMergeStr1 As String Dim sMergetab0 As String ActiveWorkbook.Sheets("input_table").Select ' ActiveSheet.Select For icur = 4 To 22 Step 1
sMergetab1 = " "
For jcur = 6 To 31 Step 1 sMergeStr = CStr(ActiveWorkbook.Sheets("input_table").Cells(icur, jcur))
NikitaDvorets, Добрый день! Огромное спасибо за помощь и потраченное время! А возможно сделать так что бы данные отображались со всего табеля в одном месте "оказание услуг", а не в каждой строке не удобен поиск информации.
NikitaDvorets, Добрый день! Огромное спасибо за помощь и потраченное время! А возможно сделать так что бы данные отображались со всего табеля в одном месте "оказание услуг", а не в каждой строке не удобен поиск информации.kenn
NikitaDvorets, Добрый день! Меняю в Вашем файле во вкладке табель фамилии сотрудников, запускаю макрос, но не чего не происходит фамилии остаются старые в остальных двух вкладках. Может я что-то не так делаю?
NikitaDvorets, Добрый день! Меняю в Вашем файле во вкладке табель фамилии сотрудников, запускаю макрос, но не чего не происходит фамилии остаются старые в остальных двух вкладках. Может я что-то не так делаю?kenn
Вторая таблица не связана с Вашим первоначальным вариантом табеля с двух-строчным календарём, она представляет данные в другой форме, гораздо более удобной для применения макроса. Чтобы ответить на Ваш вопрос, нужен этот измененный (итоговый) табель.
Добрый день.
Цитата
Может я что-то не так делаю?
Вторая таблица не связана с Вашим первоначальным вариантом табеля с двух-строчным календарём, она представляет данные в другой форме, гораздо более удобной для применения макроса. Чтобы ответить на Ваш вопрос, нужен этот измененный (итоговый) табель.NikitaDvorets
Добрый день. Таблица input_table отредактирована в соответствии с новым табелем. Макрос формирует доп. столбец "Число дней отсутствия" на листе "Табель фио-пропуски".
Добрый день. Таблица input_table отредактирована в соответствии с новым табелем. Макрос формирует доп. столбец "Число дней отсутствия" на листе "Табель фио-пропуски".NikitaDvorets
NikitaDvorets, Добрый день! Не пойму в какую вкладку мне нужно заносить данные? Я так понял что данные нужно вносить данные во вкладку "инпут", т.е. получается мне сначала надо заполнить вкладку табель, потом заполнить вкладку инпут, после чего запустить макрос.
NikitaDvorets, Добрый день! Не пойму в какую вкладку мне нужно заносить данные? Я так понял что данные нужно вносить данные во вкладку "инпут", т.е. получается мне сначала надо заполнить вкладку табель, потом заполнить вкладку инпут, после чего запустить макрос.kenn
Сообщение отредактировал kenn - Среда, 28.10.2020, 12:28
kenn, День Добрый. Я тут по игрался чуток с листами. Теперь вводите данные на листе табель и он автоматом выводит их же и на лист input_table, при помощи выпадающего списка. Кроме столбца не работал, это не осилил я. Но теперь макрос дублирует фамилии, это тоже не осилил. Может быть NikitaDvorets, по калдует над кодом. Как вариант файл прилагаю.
kenn, День Добрый. Я тут по игрался чуток с листами. Теперь вводите данные на листе табель и он автоматом выводит их же и на лист input_table, при помощи выпадающего списка. Кроме столбца не работал, это не осилил я. Но теперь макрос дублирует фамилии, это тоже не осилил. Может быть NikitaDvorets, по калдует над кодом. Как вариант файл прилагаю.MikeVol
Добрый день. Макрос был настроен на 22 строки, сейчас он исправлен до 4000 строк. Последовательность действий в прилагаемом файле: 1. Занести данные только в input_table. 2. Запустить исправленный макрос
Добрый день. Макрос был настроен на 22 строки, сейчас он исправлен до 4000 строк. Последовательность действий в прилагаемом файле: 1. Занести данные только в input_table. 2. Запустить исправленный макросNikitaDvorets
ca = Cells(Rows.Count, "w").End(xlUp).Row For Each cb In Range("w9:w" & ca) cr = cb.Row For cc = 1 To 15 cd = Application.Index(ar, cc) ce = Evaluate("=COUNTIFS(D9:D" & ba & ",W" & cr & ",V9:V" & ba & ",1," & cd & "9:" & cd & ba & ",1)") cf = Range("x" & cr).Value cg = "," If cf = "" Then cg = "" If ce = 0 Then Range("x" & cr) = cf & cg & Range(cd & 6).Value Next cc For fc = 1 To 15 cd = Application.Index(ar, fc) ce = Evaluate("=COUNTIFS(D9:D" & ba & ",W" & cr & ",V9:V" & ba & ",2," & cd & "9:" & cd & ba & ",1)") cf = Range("x" & cr).Value cg = "," If cf = "" Then cg = "" If ce = 0 Then Range("x" & cr) = cf & cg & Range(cd & 7).Value Next fc
If Range("x" & cr) = "" Then Range("w" & cr).Clear Next
ca = Cells(Rows.Count, "w").End(xlUp).Row For Each cb In Range("w9:w" & ca) cr = cb.Row For cc = 1 To 15 cd = Application.Index(ar, cc) ce = Evaluate("=COUNTIFS(D9:D" & ba & ",W" & cr & ",V9:V" & ba & ",1," & cd & "9:" & cd & ba & ",1)") cf = Range("x" & cr).Value cg = "," If cf = "" Then cg = "" If ce = 0 Then Range("x" & cr) = cf & cg & Range(cd & 6).Value Next cc For fc = 1 To 15 cd = Application.Index(ar, fc) ce = Evaluate("=COUNTIFS(D9:D" & ba & ",W" & cr & ",V9:V" & ba & ",2," & cd & "9:" & cd & ba & ",1)") cf = Range("x" & cr).Value cg = "," If cf = "" Then cg = "" If ce = 0 Then Range("x" & cr) = cf & cg & Range(cd & 7).Value Next fc
If Range("x" & cr) = "" Then Range("w" & cr).Clear Next