Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание файлов и листов в них по списку используя шаблон - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание файлов и листов в них по списку используя шаблон (Формулы/Formulas)
Создание файлов и листов в них по списку используя шаблон
Sancho Дата: Понедельник, 09.01.2017, 15:46 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет и с прошедшими праздниками!

Столкнулся с задачей которую не могу решить самостоятельно, подскажите пожалуйста.
Необходимо из списка в файле spisok.xlsm создать папки, файлы и листы в них используя шаблон Shablon.xlsx лист Шаблон.
Название папок формируется из содержимого в столбцах A B C в списке
Названия файлов формируются из содержимого столбцов C D P Q
Названия листов из столбца H
Необходимо что бы в файле ,например "цех 0022 бригада 001 смена 1 группа 2" были созданы листы на сотрудников чьи указанные значения совпадают, в данном примере это листы по столбцу H "224937 Капустин" и "228326 Лапшин". список вероятнее всего будет перемешан, сортировка списка тоже будет затруднительна т.к. реальные значения столбцов P Q не ограничены двумя цифрами 1 и 2, поэтому и затрудняюсь придумать алгоритм обработки списка - как создать файл и лист по первой строке, затем возможно создать следующий файл и лист по второй строке, а затем открыть снова первый файл и добавить в него лист по третей строке и т.д.
К сообщению приложен файл: Shablon.xlsx (18.4 Kb) · Spisok.xlsm (27.8 Kb)
 
Ответить
СообщениеВсем привет и с прошедшими праздниками!

Столкнулся с задачей которую не могу решить самостоятельно, подскажите пожалуйста.
Необходимо из списка в файле spisok.xlsm создать папки, файлы и листы в них используя шаблон Shablon.xlsx лист Шаблон.
Название папок формируется из содержимого в столбцах A B C в списке
Названия файлов формируются из содержимого столбцов C D P Q
Названия листов из столбца H
Необходимо что бы в файле ,например "цех 0022 бригада 001 смена 1 группа 2" были созданы листы на сотрудников чьи указанные значения совпадают, в данном примере это листы по столбцу H "224937 Капустин" и "228326 Лапшин". список вероятнее всего будет перемешан, сортировка списка тоже будет затруднительна т.к. реальные значения столбцов P Q не ограничены двумя цифрами 1 и 2, поэтому и затрудняюсь придумать алгоритм обработки списка - как создать файл и лист по первой строке, затем возможно создать следующий файл и лист по второй строке, а затем открыть снова первый файл и добавить в него лист по третей строке и т.д.

Автор - Sancho
Дата добавления - 09.01.2017 в 15:46
bmv98rus Дата: Понедельник, 09.01.2017, 16:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Sancho,

А вчем пролема то. Чисто по жизни, если папок 2,3,10 можно последовательно раскладывать, а если 100, то сперва всех для одной папки потом для другой.
Это я к тому что создали файл и всех до конца списка проверили, по тем кто должен в этот файл попасть создали листы. Записали имя файла в словарь (для удобства описание тут Взяли следующего, сверились со словарем, если уже входит в обработанный файл, то берем следующего. И с файлами меньше дергатни.

Или я не понял сути вопроса?


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Понедельник, 09.01.2017, 16:40
 
Ответить
СообщениеSancho,

А вчем пролема то. Чисто по жизни, если папок 2,3,10 можно последовательно раскладывать, а если 100, то сперва всех для одной папки потом для другой.
Это я к тому что создали файл и всех до конца списка проверили, по тем кто должен в этот файл попасть создали листы. Записали имя файла в словарь (для удобства описание тут Взяли следующего, сверились со словарем, если уже входит в обработанный файл, то берем следующего. И с файлами меньше дергатни.

Или я не понял сути вопроса?

Автор - bmv98rus
Дата добавления - 09.01.2017 в 16:27
Sancho Дата: Понедельник, 09.01.2017, 18:19 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
bmv98rus, Спасибо, суть понятна, только боюсь сам не справлюсь в этом высшем пилотаже.

ЗЫ: прошу прощения, не в том разделе создал тему. Перенести возможно в Вопросы по VBA?


Сообщение отредактировал Sancho - Понедельник, 09.01.2017, 18:20
 
Ответить
Сообщениеbmv98rus, Спасибо, суть понятна, только боюсь сам не справлюсь в этом высшем пилотаже.

ЗЫ: прошу прощения, не в том разделе создал тему. Перенести возможно в Вопросы по VBA?

Автор - Sancho
Дата добавления - 09.01.2017 в 18:19
bmv98rus Дата: Понедельник, 09.01.2017, 20:59 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Sancho,
А кто делал тот скрипт, что в файле?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеSancho,
А кто делал тот скрипт, что в файле?

Автор - bmv98rus
Дата добавления - 09.01.2017 в 20:59
Sancho Дата: Понедельник, 09.01.2017, 22:07 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
bmv98rus, http://www.excelworld.ru/forum/10-23681-1 помогла Manyasha, затем здесь http://www.excelworld.ru/forum/10-24176-1 помогли SLAVICK. _Boroda_, Udik пропускать скрытые фильтром строки. В данном же файле я лишь осилил копирование листов и создание гиперссылок на них в основном через макрорекордер, а вот прорисовку границ диапазоном и установить формат ячеек в одной строке не отсылаясь вновь к ячейке в которой только что был, так и не смог, так и пришлось по ячейке обрисовывать, а про форматы пока забыть, не говоря уж и об основной проблеме. хоть и пытаюсь самостоятельно что то натворить пока получается только самое элементарное и то не все.
например в коде не описан случай отказ пользователя от выбора файла при выполнении строки [vba]
Код
avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "1", , True)
[/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]
Код
avFiles = Application.GetOpenFilename("Excel files(*.xls*),*.xls*", , "1", , True)
[/vba] и потому вылезает баг. пытаюсь впихнуть строку [vba]
Код
If avFiles = False Then Exit Sub
[/vba] при отказе срабатывает, а вот если пользователь выбрал файл то уже нет, баг. Как то так вообщем, что то получается, что то нет. Слабенький я еще кодировщик, очень)

Автор - Sancho
Дата добавления - 09.01.2017 в 22:07
bmv98rus Дата: Понедельник, 09.01.2017, 22:46 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Sancho,

Было достаточно перечислить. Просто заметно что стиль кусков разный. По идее то, что вы обозначили, для перечисленных раз плюнуть, только на мой взгляд надо все переписать почти с нуляю. К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости. Интересно ли сделать такой скрипт им - не могу сказат. Я могу помочь с тем что пояснял выше, но все будет не целостно.
[vba]
Код
If Not avFiles Or Not IsArray(avFiles) Then Exit Sub
[/vba] - это избавит от бага.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Понедельник, 09.01.2017, 22:47
 
Ответить
СообщениеSancho,

Было достаточно перечислить. Просто заметно что стиль кусков разный. По идее то, что вы обозначили, для перечисленных раз плюнуть, только на мой взгляд надо все переписать почти с нуляю. К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости. Интересно ли сделать такой скрипт им - не могу сказат. Я могу помочь с тем что пояснял выше, но все будет не целостно.
[vba]
Код
If Not avFiles Or Not IsArray(avFiles) Then Exit Sub
[/vba] - это избавит от бага.

Автор - bmv98rus
Дата добавления - 09.01.2017 в 22:46
Sancho Дата: Вторник, 10.01.2017, 07:42 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости.

bmv98rus, Да, вы правы, размещение листа шаблона в файл со списком будет правильным решением, но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.

Я могу помочь с тем что пояснял выше, но все будет не целостно.

Помогите пожалуйста

If Not avFiles Or Not IsArray(avFiles) Then Exit Sub
- это избавит от бага.


Ничего не понимаю, при выборе пользователем файла опять баг run-time error 13 "Type mismatch"
 
Ответить
Сообщение
К слову, а нужен ли файл шаблона держать отдельно или лучше его в одном файле держать и просто копировать в новую книгу при необходимости.

bmv98rus, Да, вы правы, размещение листа шаблона в файл со списком будет правильным решением, но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.

Я могу помочь с тем что пояснял выше, но все будет не целостно.

Помогите пожалуйста

If Not avFiles Or Not IsArray(avFiles) Then Exit Sub
- это избавит от бага.


Ничего не понимаю, при выборе пользователем файла опять баг run-time error 13 "Type mismatch"

Автор - Sancho
Дата добавления - 10.01.2017 в 07:42
bmv98rus Дата: Вторник, 10.01.2017, 08:32 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.
так и поступать, копировать один раз, при создании новой книги(файла), и заполнять формулами, по мере поступления дополнитедьных листов. Хотя и тут яб предложил обратное, наполнять таблицу днными по сотрудникам, а в шаблон подтягивать из нее данные по одному из полей.

Помочь попробую, не уверен про свободное время. Возможно появятся другие желающие.
run-time error 13 "Type mismatch"
это я вчера сослепу не то вставил. даостаточно [vba]
Код
If Not IsArray(avFiles) Then Exit Sub
[/vba]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
но тогда возникает вопрос как поступить со сводным листом, который по идее должен копироваться один раз в в новую книгу а потом наполняться ссылками и формулами.
так и поступать, копировать один раз, при создании новой книги(файла), и заполнять формулами, по мере поступления дополнитедьных листов. Хотя и тут яб предложил обратное, наполнять таблицу днными по сотрудникам, а в шаблон подтягивать из нее данные по одному из полей.

Помочь попробую, не уверен про свободное время. Возможно появятся другие желающие.
run-time error 13 "Type mismatch"
это я вчера сослепу не то вставил. даостаточно [vba]
Код
If Not IsArray(avFiles) Then Exit Sub
[/vba]

Автор - bmv98rus
Дата добавления - 10.01.2017 в 08:32
Sancho Дата: Вторник, 10.01.2017, 08:57 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
это я вчера сослепу не то вставил. даостаточно

Спасибо, вот так теперь заработало.
 
Ответить
Сообщение
это я вчера сослепу не то вставил. даостаточно

Спасибо, вот так теперь заработало.

Автор - Sancho
Дата добавления - 10.01.2017 в 08:57
bmv98rus Дата: Вторник, 10.01.2017, 10:05 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Sancho,
У вас нет желания предлоожить это в работа/фриланс. Может кто за даром или смешные деньги поможет с тем что есть. Я вот смотрю и думаю что начинать надо с концепции. то есть оттого как устроен финальный файл. сделанный из шаблона, что облегчит последующие задачи и решить вашузадачу комплексно. Если продолжим, то тема разбухнет и ответы не будут связаны с заголовком. А через работа/фриланс молжно, не нарушая пункта 5.о этого форума правил спокойно все решить

Вы можете выложить пример заполненного"шаблона" для пары сотрудников?

В прилодении обьединенный файл. не заполняет листы, только создает набор файлов с листами.
К сообщению приложен файл: 6284000.xlsm (41.7 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Вторник, 10.01.2017, 17:08
 
Ответить
СообщениеSancho,
У вас нет желания предлоожить это в работа/фриланс. Может кто за даром или смешные деньги поможет с тем что есть. Я вот смотрю и думаю что начинать надо с концепции. то есть оттого как устроен финальный файл. сделанный из шаблона, что облегчит последующие задачи и решить вашузадачу комплексно. Если продолжим, то тема разбухнет и ответы не будут связаны с заголовком. А через работа/фриланс молжно, не нарушая пункта 5.о этого форума правил спокойно все решить

Вы можете выложить пример заполненного"шаблона" для пары сотрудников?

В прилодении обьединенный файл. не заполняет листы, только создает набор файлов с листами.

Автор - bmv98rus
Дата добавления - 10.01.2017 в 10:05
bmv98rus Дата: Вторник, 10.01.2017, 18:06 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Вот так
К сообщению приложен файл: 6653641.xlsm (44.8 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Вторник, 10.01.2017, 23:28
 
Ответить
СообщениеВот так

Автор - bmv98rus
Дата добавления - 10.01.2017 в 18:06
Sancho Дата: Среда, 11.01.2017, 07:46 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
bmv98rus, Спасибо, работает. Извиняюсь, что вчера не мог ответить на Ваши вопросы.
 
Ответить
Сообщениеbmv98rus, Спасибо, работает. Извиняюсь, что вчера не мог ответить на Ваши вопросы.

Автор - Sancho
Дата добавления - 11.01.2017 в 07:46
bmv98rus Дата: Среда, 11.01.2017, 12:46 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Sancho,
А чему там не работать то.
Я единственное, не обрабатывал ошибку, если имя файла будет вдруг пустое. так же вам решать нужно ли в имеи файла & " " & ".xlsx" . Я оставил как есть, но на мой взгляд пробел лиший.. Ну и алгоритм заточен по создание, а не на изменение. но это уже другой вопрос.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеSancho,
А чему там не работать то.
Я единственное, не обрабатывал ошибку, если имя файла будет вдруг пустое. так же вам решать нужно ли в имеи файла & " " & ".xlsx" . Я оставил как есть, но на мой взгляд пробел лиший.. Ну и алгоритм заточен по создание, а не на изменение. но это уже другой вопрос.

Автор - bmv98rus
Дата добавления - 11.01.2017 в 12:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание файлов и листов в них по списку используя шаблон (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!