Страницы: 1
RSS
Вставка информации с одного листа на другой, Вставка информации с одного листа на другой
 
Добрый день!
Есть большой файл ексель, здесь прикрепляю файл Пример. Нужно из вкладки Лист1 перенести данные на вкладку Лист2 в каждую табличку так, как показано в первых табличках. Данные на вкладке Лист1 отсортированы по названию.
Как можно это сделать макросом или формулой?
Изменено: Nick Vector - 23.10.2020 13:15:33
 
Nick Nick,
а Вам точно нужна вторая таблица?
Возможно достаточно скрыть не нужное макросом и получится то, что нужно Вам? ССЫЛКА
Изменено: evgeniygeo - 23.10.2020 13:16:39
 
Да, нужно именно перенести. В каждой отдельной табличке должны быть по 3 товара, которые отличаются размером (столбец Название товара). Эти товары отсортированы на вкладке Лист1 и идут подряд
 
Nick Vector, чет смотрю не пойму - сгруппировать по параметру (Размер) ....но там нет нигде такого параметра, в моем понимание это одинаковый размер должен быть вместе...опишите словами задачу пожалуйста, всегда по 3 строки? и всегда идет "003" "AM PM " и т.д. в кавычках?
Изменено: Mershik - 23.10.2020 13:29:43
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, обновил файл.
На вкладке Лист1 название (отличаются концовкой размером), идут по 3 шт. Их нужно скопировать в отдельные таблички на вкладке Лист2.
Первые 2 я заполнил для примера, как должно быть.
 
Mershik, Там просто надо все строки разбить кратно трем и подставить заголовок. Думаю волшебные макросы с этим справятся. ;)  
Изменено: DemonAMT - 23.10.2020 13:39:50
 
DemonAMT, ну или так, спасибо за уточнение
 
Nick Vector,
может тупо записью?
Код
Sub Макрос1()
    ActiveSheet.Range("$A$1:$C$1604").AutoFilter Field:=1, Criteria1:= _
        "<>ID товара", Operator:=xlAnd, Criteria2:="<> "
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Sheets("Лист1").Select
    Range("A1").Paste
    ActiveSheet.Paste
End Sub
 
если по 3 строки
Код
Sub dsd()
Dim sh As Worksheet, result As Worksheet, lr As Long, i As Long, shapka
shapka = Array("ID товара", "ID товара у продавца", "Название товара")
Set sh = Worksheets("Лист1"): Set result = Worksheets("Лист2")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
K = 1
For i = 2 To lr Step 3
    result.Range("A" & K & ":C" & K) = shapka
    sh.Range(sh.Cells(i, 1), sh.Cells(i + 2, 3)).Copy Destination:=result.Cells(K + 1, 1)
    K = K + 5
Next i
End Sub


Изменено: Mershik - 23.10.2020 13:57:57
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, ваш метод работает, но если товаров с одним названием и разными размерами 2, а не 3, то получается сдвиг в остальных табличках.
Декоративная   картина из дерева My Wood Decor "003" L 40 х 65 см
Декоративная   картина из дерева My Wood Decor "003" M 30 х 50 см
Декоративная   картина из дерева My Wood Decor "003" XL 60 х 98 см
Декоративная картина из дерева My Wood Decor "003" - название и 3 размера

А может быть 2, их несколько, но они есть
Изменено: Nick Vector - 23.10.2020 14:04:03
 
Nick Vector, разиберитесь в "СЕБЕ" и приведите пример...
Цитата
Nick Vector написал:
всегда по 3 строки?
Цитата
Nick Vector написал:
идут по 3 шт.
Цитата
DemonAMT написал:
ам просто надо все строки разбить кратно трем и подставить заголовок. Думаю волшебные макросы с этим справятся.
Цитата
Nick Vector написал:
ну или так, спасибо за уточнение
Изменено: Mershik - 23.10.2020 14:06:05
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, извините, да, только сейчас досмотрел
Обновил файл.

Может быть так:
229338877980290849Декоративная картина из дерева   My Wood Decor "003" L 40 х 65 см
229338829980290848Декоративная картина из дерева My Wood Decor "003" M   30 х 50 см
229338715980290850Декоративная картина из дерева My Wood Decor "003"   XL 60 х 98 см
2293384991199060185Декоративная картина из дерева   My Wood Decor "AM PM " 50 х 50 см
2293394291199084200Декоративная картина из дерева My Wood Decor "AM PM   " XL 90 х 90 см
2293386491197750247Декоративная картина из дерева   My Wood Decor "Everton", футбольная эмблема 43 х 50 см
2293388651197755143Декоративная картина из дерева My Wood Decor   "Everton", футбольная эмблема L 65 х 75 см
2293393151197755144Декоративная картина из дерева My Wood Decor   "Everton", футбольная эмблема XL 87 х 100 см
По 3, потом 2, потом опять 3 (но 1 или 4 быть не может!)
Изменено: Nick Vector - 23.10.2020 14:11:33
 
Nick Vector,
Код
Sub dsd()
Dim sh As Worksheet, result As Worksheet, lr As Long, i As Long, shapka
shapka = Array("ID товара", "ID товара у продавца", "Название товара")
Set sh = Worksheets("Лист1"): Set result = Worksheets("Лист2")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
result.Range("A:C").Clear
k = 1
For i = 2 To lr
    For Z = 1 To Len(sh.Cells(i, 3))
        If Mid(sh.Cells(i, 3), Z, 1) = Chr(34) Then
            If x = 0 Then
                x = Z
            Else
                x2 = Z
                s = Application.WorksheetFunction.CountIf(sh.Columns(3), Mid(sh.Cells(i, 3), 1, x2) & "*") - 1
                result.Range("A" & k & ":C" & k) = shapka
                sh.Range(sh.Cells(i, 1), sh.Cells(i + s, 3)).Copy Destination:=result.Cells(k + 1, 1)
                x = 0: k = result.Cells(Rows.Count, 1).End(xlUp).Row + 2: i = i + s
                Exit For
            End If
        End If
    Next Z
Next i
End Sub
Изменено: Mershik - 23.10.2020 15:47:23
Не бойтесь совершенства. Вам его не достичь.
Страницы: 1
Наверх