Создание листов из списка, объединение нескольких файлов в один по условию

Автор Twilight Life, 14.01.2015, 01:23

« назад - далее »

Twilight Life

Добрый вечер!
В теме уже встречал похожие вопросы, но полностью разобраться так и не смог.
Задача 1:
Нужно для каждого наименования в списке создать лист с таким же именем, при этом на листе должна быть информация указанная в базовом шаблоне (как должен выглядеть лист с товаром). Т.е. должны создаться листы с такой же инфой как в базовом шаблоне (в данном случае базовый шаблон 1. Двери).

Вопросы удалены [МОДЕРАТОР]

vikttur

Один вопрос - одна тема. Не нужно превращать  в свалку вопросов.
Если ждете комплексного решения и готовы за это платить - ТЗ можно описать в одной теме, но в разделе для платных заказов.

По вопросу. Цель создания листов? Возможно, задача решается оптимальнее.

Twilight Life

Цель иметь базу по всем наименования, при этом чтобы можно было открыть одно из наименований, и более подробно все изучить и динамику по показателям в общей таблице.

Эх.. удалили задачи, а я их даже не сохранил нигде :(((
Очень нужно, чтобы можно было несколько файлов объединять в один.

vikttur

ЦитироватьЦель иметь базу по всем наименованиям
База - структурированные данные, сохраненные в одном месте. При таком хранении данных возможны любые выборки.
Самая простая - _автофильтр_ (отбор по наименованию).
Из базы при необходимости можно отбирать данные по любым критериям, формировать отдельные таблицы, сохранять данные в отдельных файлах...
Не вижу смысла в хранении дублированных данных на отдельных листах.

Twilight Life

ЦитироватьБаза - структурированные данные, сохраненные в одном месте...
Не вижу смысла в хранении дублированных данных на отдельных листах
Чтобы эти данные появлялись в таблице в структурированном виде, их нужно откуда-то брать т.е. из листов. На листах кроме тех данных которые отражаются в базе, есть еще текстовые и всякие диаграммы, графики и фотографии, поэтому листы нужны.
Забивать абсолютно все данные по всем месяцам по каждому наименованию в общую базу, во первых слишком долго и трудоемко, т.к. поделить работу на несколько людей не получится..
--
Пример с товарами условный, не придирайтесь к смыслу. Мне просто нужен алгоритм, который я описал в самом начале.

"Как перенести наименования товаров на отдельные листы с заданным базовым шаблоном. Или продублировать лист с шаблоном, задавая ему имена из общего списка. "



vikttur

ЦитироватьЧтобы эти данные появлялись в таблице в структурированном виде, их нужно откуда-то брать
Я понял так, что у Вас будет база (лист Список), из которой Вы хотите разделить данные по листам.
И не придираюсь - предлагаю вариант, на мой взгляд, более оптимальный.
Возможно, неправильно понял общую задачу.

Twilight Life

ЦитироватьЯ понял так, что у Вас будет база (лист Список), из которой Вы хотите разделить данные по листам.
Для каждого наименования в списке создать отдельный лист с тем же названием. На самом листе должен быть базовый шаблон, который создан на отдельном листе. В прикрепленном файле шаблон - это двери.

vikttur

Sub CopySheets()
' определяем используемые переменные
Dim ArrName
Dim lRws As Long
Dim i As Long
    ' между With/End With все, начинающееся точкой,
    ' относится к листу Список (внутреннее имя wsList)
    With wsList
        lRws = .Cells(.Rows.Count, 1).End(xlUp).Row ' последня заполненная ячейка столбца А
        ArrName = .Range("A5:A" & lRws).Value ' данные диапазона в виртуальный массив
    End With
   
    ' цикл по записям в массиве (от первой до последней)
    For i = 1 To UBound(ArrName)
        ' копируем лист с шаблоном и вставляем первым листом
        wsTemplate.Copy Before:=Sheets(1)
        Sheets(1).Name = ArrName(i, 1) ' новое имя листа
        Sheets(1).Cells(1, 1) = ArrName(i, 1) ' название листа в ячейку
    Next i
End Sub

Без проверки на ошибку при создании листа с существующим именем.

Twilight Life

Круто! Спасибо огромное!
Теперь осталось разобраться, что какая строчка значит)

vikttur


Kavomatovlfank

Если не получается,  то подскажите как лучше сделать через добавление листа и копирование содержимого? Листов несколько...

vikttur

Kavomatovlfank, вопрос непонятен.
Показанный код создает копию листа с его содержимым.

"Правило один вопрос-одна тема". Если у Вас другой вопрос, стоит создать свою тему