Столкнулся с задачей которую не могу решить самостоятельно, подскажите пожалуйста. Необходимо из списка в файле spisok.xlsm создать папки, файлы и листы в них используя шаблон Shablon.xlsx лист Шаблон. Название папок формируется из содержимого в столбцах A B C в списке Названия файлов формируются из содержимого столбцов C D P Q Названия листов из столбца H Необходимо что бы в файле ,например "цех 0022 бригада 001 смена 1 группа 2" были созданы листы на сотрудников чьи указанные значения совпадают, в данном примере это листы по столбцу H "224937 Капустин" и "228326 Лапшин". список вероятнее всего будет перемешан, сортировка списка тоже будет затруднительна т.к. реальные значения столбцов P Q не ограничены двумя цифрами 1 и 2, поэтому и затрудняюсь придумать алгоритм обработки списка - как создать файл и лист по первой строке, затем возможно создать следующий файл и лист по второй строке, а затем открыть снова первый файл и добавить в него лист по третей строке и т.д.
Всем привет и с прошедшими праздниками!
Столкнулся с задачей которую не могу решить самостоятельно, подскажите пожалуйста. Необходимо из списка в файле spisok.xlsm создать папки, файлы и листы в них используя шаблон Shablon.xlsx лист Шаблон. Название папок формируется из содержимого в столбцах A B C в списке Названия файлов формируются из содержимого столбцов C D P Q Названия листов из столбца H Необходимо что бы в файле ,например "цех 0022 бригада 001 смена 1 группа 2" были созданы листы на сотрудников чьи указанные значения совпадают, в данном примере это листы по столбцу H "224937 Капустин" и "228326 Лапшин". список вероятнее всего будет перемешан, сортировка списка тоже будет затруднительна т.к. реальные значения столбцов P Q не ограничены двумя цифрами 1 и 2, поэтому и затрудняюсь придумать алгоритм обработки списка - как создать файл и лист по первой строке, затем возможно создать следующий файл и лист по второй строке, а затем открыть снова первый файл и добавить в него лист по третей строке и т.д.Sancho
А вчем пролема то. Чисто по жизни, если папок 2,3,10 можно последовательно раскладывать, а если 100, то сперва всех для одной папки потом для другой. Это я к тому что создали файл и всех до конца списка проверили, по тем кто должен в этот файл попасть создали листы. Записали имя файла в словарь (для удобства описание тут Взяли следующего, сверились со словарем, если уже входит в обработанный файл, то берем следующего. И с файлами меньше дергатни.
Или я не понял сути вопроса?
Sancho,
А вчем пролема то. Чисто по жизни, если папок 2,3,10 можно последовательно раскладывать, а если 100, то сперва всех для одной папки потом для другой. Это я к тому что создали файл и всех до конца списка проверили, по тем кто должен в этот файл попасть создали листы. Записали имя файла в словарь (для удобства описание тут Взяли следующего, сверились со словарем, если уже входит в обработанный файл, то берем следующего. И с файлами меньше дергатни.
bmv98rus, http://www.excelworld.ru/forum/10-23681-1 помогла Manyasha, затем здесь http://www.excelworld.ru/forum/10-24176-1 помогли SLAVICK. _Boroda_, Udik пропускать скрытые фильтром строки. В данном же файле я лишь осилил копирование листов и создание гиперссылок на них в основном через макрорекордер, а вот прорисовку границ диапазоном и установить формат ячеек в одной строке не отсылаясь вновь к ячейке в которой только что был, так и не смог, так и пришлось по ячейке обрисовывать, а про форматы пока забыть, не говоря уж и об основной проблеме. хоть и пытаюсь самостоятельно что то натворить пока получается только самое элементарное и то не все. например в коде не описан случай отказ пользователя от выбора файла при выполнении строки [vba]
[/vba] и потому вылезает баг. пытаюсь впихнуть строку [vba]
Код
If avFiles = False Then Exit Sub
[/vba] при отказе срабатывает, а вот если пользователь выбрал файл то уже нет, баг. Как то так вообщем, что то получается, что то нет. Слабенький я еще кодировщик, очень)
bmv98rus, http://www.excelworld.ru/forum/10-23681-1 помогла Manyasha, затем здесь http://www.excelworld.ru/forum/10-24176-1 помогли SLAVICK. _Boroda_, Udik пропускать скрытые фильтром строки. В данном же файле я лишь осилил копирование листов и создание гиперссылок на них в основном через макрорекордер, а вот прорисовку границ диапазоном и установить формат ячеек в одной строке не отсылаясь вновь к ячейке в которой только что был, так и не смог, так и пришлось по ячейке обрисовывать, а про форматы пока забыть, не говоря уж и об основной проблеме. хоть и пытаюсь самостоятельно что то натворить пока получается только самое элементарное и то не все. например в коде не описан случай отказ пользователя от выбора файла при выполнении строки [vba]
[/vba] и потому вылезает баг. пытаюсь впихнуть строку [vba]
Код
If avFiles = False Then Exit Sub
[/vba] при отказе срабатывает, а вот если пользователь выбрал файл то уже нет, баг. Как то так вообщем, что то получается, что то нет. Слабенький я еще кодировщик, очень)Sancho
Было достаточно перечислить. Просто заметно что стиль кусков разный. По идее то, что вы обозначили, для перечисленных раз плюнуть, только на мой взгляд надо все переписать почти с нуляю. К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости. Интересно ли сделать такой скрипт им - не могу сказат. Я могу помочь с тем что пояснял выше, но все будет не целостно. [vba]
Код
If Not avFiles Or Not IsArray(avFiles) Then Exit Sub
[/vba] - это избавит от бага.
Sancho,
Было достаточно перечислить. Просто заметно что стиль кусков разный. По идее то, что вы обозначили, для перечисленных раз плюнуть, только на мой взгляд надо все переписать почти с нуляю. К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости. Интересно ли сделать такой скрипт им - не могу сказат. Я могу помочь с тем что пояснял выше, но все будет не целостно. [vba]
Код
If Not avFiles Or Not IsArray(avFiles) Then Exit Sub
К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости.
bmv98rus, Да, вы правы, размещение листа шаблона в файл со списком будет правильным решением, но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.
К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости.
bmv98rus, Да, вы правы, размещение листа шаблона в файл со списком будет правильным решением, но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.
но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.
так и поступать, копировать один раз, при создании новой книги(файла), и заполнять формулами, по мере поступления дополнитедьных листов. Хотя и тут яб предложил обратное, наполнять таблицу днными по сотрудникам, а в шаблон подтягивать из нее данные по одному из полей.
Помочь попробую, не уверен про свободное время. Возможно появятся другие желающие.
но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.
так и поступать, копировать один раз, при создании новой книги(файла), и заполнять формулами, по мере поступления дополнитедьных листов. Хотя и тут яб предложил обратное, наполнять таблицу днными по сотрудникам, а в шаблон подтягивать из нее данные по одному из полей.
Помочь попробую, не уверен про свободное время. Возможно появятся другие желающие.
Sancho, У вас нет желания предлоожить это в работа/фриланс. Может кто за даром или смешные деньги поможет с тем что есть. Я вот смотрю и думаю что начинать надо с концепции. то есть оттого как устроен финальный файл. сделанный из шаблона, что облегчит последующие задачи и решить вашузадачу комплексно. Если продолжим, то тема разбухнет и ответы не будут связаны с заголовком. А через работа/фриланс молжно, не нарушая пункта 5.о этого форума правил спокойно все решить
Вы можете выложить пример заполненного"шаблона" для пары сотрудников?
В прилодении обьединенный файл. не заполняет листы, только создает набор файлов с листами.
Sancho, У вас нет желания предлоожить это в работа/фриланс. Может кто за даром или смешные деньги поможет с тем что есть. Я вот смотрю и думаю что начинать надо с концепции. то есть оттого как устроен финальный файл. сделанный из шаблона, что облегчит последующие задачи и решить вашузадачу комплексно. Если продолжим, то тема разбухнет и ответы не будут связаны с заголовком. А через работа/фриланс молжно, не нарушая пункта 5.о этого форума правил спокойно все решить
Вы можете выложить пример заполненного"шаблона" для пары сотрудников?
В прилодении обьединенный файл. не заполняет листы, только создает набор файлов с листами.bmv98rus
Sancho, А чему там не работать то. Я единственное, не обрабатывал ошибку, если имя файла будет вдруг пустое. так же вам решать нужно ли в имеи файла & " " & ".xlsx" . Я оставил как есть, но на мой взгляд пробел лиший.. Ну и алгоритм заточен по создание, а не на изменение. но это уже другой вопрос.
Sancho, А чему там не работать то. Я единственное, не обрабатывал ошибку, если имя файла будет вдруг пустое. так же вам решать нужно ли в имеи файла & " " & ".xlsx" . Я оставил как есть, но на мой взгляд пробел лиший.. Ну и алгоритм заточен по создание, а не на изменение. но это уже другой вопрос.bmv98rus
Замечательный Временно просто медведь , процентов на 20.