Есть готовый график работы (Лист "График"). Необходимо скопировать ЗНАЧЕНИЯ продолжительности рабочего времени на новый лист ("График"), а лучше в новую книгу. Трудность в следующем: 1. В листе "График" строки на 31 день, а лист "Табель" - двухстрочный на одного работника. 2. В листе "График" запись на одного работника или 3 строки + итоговая, или 6 строк + итоговая, причём записи следуют в любом порядке (всего до 350 записей). 3. В некоторых записях могут быть буквы (Б, О, ДО, У и, возможно, ещё что-либо) - всегда в строке "Обед" - желательно скопировать их в "Табель" в те же числа месяца. 4. После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом). Как я понимаю, все это можно сделать только макросом, а в VBA я могу только макрорекордером (для данной задачи не подходит), или немного подправить под себя чужой макрос. Поиском по форумам находил некоторые из элементов задачи (очень приблизительно), но "слепить" их вместе - выше моих познаний. Прошу любой помощи: ссылки, идеи, коды. Очень нужно!
Есть готовый график работы (Лист "График"). Необходимо скопировать ЗНАЧЕНИЯ продолжительности рабочего времени на новый лист ("График"), а лучше в новую книгу. Трудность в следующем: 1. В листе "График" строки на 31 день, а лист "Табель" - двухстрочный на одного работника. 2. В листе "График" запись на одного работника или 3 строки + итоговая, или 6 строк + итоговая, причём записи следуют в любом порядке (всего до 350 записей). 3. В некоторых записях могут быть буквы (Б, О, ДО, У и, возможно, ещё что-либо) - всегда в строке "Обед" - желательно скопировать их в "Табель" в те же числа месяца. 4. После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом). Как я понимаю, все это можно сделать только макросом, а в VBA я могу только макрорекордером (для данной задачи не подходит), или немного подправить под себя чужой макрос. Поиском по форумам находил некоторые из элементов задачи (очень приблизительно), но "слепить" их вместе - выше моих познаний. Прошу любой помощи: ссылки, идеи, коды. Очень нужно!kubhome
После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом)
Самая дурацкая идея. Табельный номер, как и ИНН, являются УНИКАЛЬНЫМ идентификатором, а вы по ФИО, которые могут совпадать, предполагаете подтягивать УНИКАЛЬНЫЙ идентификатор. И без того в ваших табличках проблем хватает. Решите вопрос с табельным номером - поглядим.
Цитата (kubhome)
После копирования всех записей в "Табель" - отсортировать их по табельным номерам (они будут подставляться по ФИО, наверное ВПР-ом)
Самая дурацкая идея. Табельный номер, как и ИНН, являются УНИКАЛЬНЫМ идентификатором, а вы по ФИО, которые могут совпадать, предполагаете подтягивать УНИКАЛЬНЫЙ идентификатор. И без того в ваших табличках проблем хватает. Решите вопрос с табельным номером - поглядим.RAN
Я понимаю, что сортировка двухстрочных записей проблематиична. По поводу таб. № - пока у меня ФИО уникальные. А если без сортировки? Возможно мне придется вручную, или что-нибудь придумаю. Для меня самые трудоемкие и актуальные первые 2 пункта. Спасибо!
Я понимаю, что сортировка двухстрочных записей проблематиична. По поводу таб. № - пока у меня ФИО уникальные. А если без сортировки? Возможно мне придется вручную, или что-нибудь придумаю. Для меня самые трудоемкие и актуальные первые 2 пункта. Спасибо!kubhome
Чувствую, моя задача или слишком сложная, или не интересная! Может быть хоть примерное решение (направление) - дальше попробую "докрутить"? Иначе - я в тупике, только пошагово копи-паст.
Чувствую, моя задача или слишком сложная, или не интересная! Может быть хоть примерное решение (направление) - дальше попробую "докрутить"? Иначе - я в тупике, только пошагово копи-паст.kubhome
Вариант, предложенный RAN, похоже делает то, что нужно. Спасибо Вам. Сейчас буду тестировать на рабочем файле. Извините, я упустил из виду, что в столбце V листа "Табель" формула суммирования рабочих часов за месяц; можно ли её сохранить? Т.к. по факту часы по дням придется корректировать.
Вариант, предложенный RAN, похоже делает то, что нужно. Спасибо Вам. Сейчас буду тестировать на рабочем файле. Извините, я упустил из виду, что в столбце V листа "Табель" формула суммирования рабочих часов за месяц; можно ли её сохранить? Т.к. по факту часы по дням придется корректировать.kubhome
Извините, я не понял, что надо изменить в указанной строке. Хотелось бы, чтобы в листе "Табель" в ячейке V12 (V14, V16, ...) вставлялась формула =СУММ(F11:T11;F12:U12) для V12 и т.д.
Извините, я не понял, что надо изменить в указанной строке. Хотелось бы, чтобы в листе "Табель" в ячейке V12 (V14, V16, ...) вставлялась формула =СУММ(F11:T11;F12:U12) для V12 и т.д.kubhome
К сожалению на рабочем файле данный макрос не работает. Вставляет 4 пустые строки в шапку таблицы "ТабельШаблон" и в таком виде сохраняет результат (см. вложение)
К сожалению на рабочем файле данный макрос не работает. Вставляет 4 пустые строки в шапку таблицы "ТабельШаблон" и в таком виде сохраняет результат (см. вложение)kubhome
Привет всем. У меня аналогичная задача, есть документ с кучей листов по параметрам. Задача состоит в том чтобы делать отчет по результатам раз месяц. С помощью рекордера и своих небольших познаний в VBA сделал возможность создания нового документа и переноса туда данных. Проблема в том что в формуле
[vba]
Код
Set new = Workbooks.Add new.Sheets("Лист1").Activate Range("C5").Select ActiveCell.FormulaR1C1 = _ "=IFERROR(VLOOKUP(RC1,'[Отчет.xls]база1'!R7C11:R1870C24,14,0),"""")"
[/vba]
'[Отчет.xls]база1'! ссылается только на конкретный лист, а у меня таких листов 10. Как можно сделать, чтобы при запуске макрос, определялась страница, предпологал что как то с помощью SheetName = ActiveSheet.name Но не хватает знаний чтобы привязать к формуле.
Заранее спасибо!
Привет всем. У меня аналогичная задача, есть документ с кучей листов по параметрам. Задача состоит в том чтобы делать отчет по результатам раз месяц. С помощью рекордера и своих небольших познаний в VBA сделал возможность создания нового документа и переноса туда данных. Проблема в том что в формуле
[vba]
Код
Set new = Workbooks.Add new.Sheets("Лист1").Activate Range("C5").Select ActiveCell.FormulaR1C1 = _ "=IFERROR(VLOOKUP(RC1,'[Отчет.xls]база1'!R7C11:R1870C24,14,0),"""")"
[/vba]
'[Отчет.xls]база1'! ссылается только на конкретный лист, а у меня таких листов 10. Как можно сделать, чтобы при запуске макрос, определялась страница, предпологал что как то с помощью SheetName = ActiveSheet.name Но не хватает знаний чтобы привязать к формуле.