Здравствуйте! Очень прошу вашей помощи. Моих познаний в Excel оказалось недостаточно для поставленной задачи. Есть файл сводный. Надо раскидать данный файла по листам книги согласно названию листа. Уже руками каждый месяц сил нету это делать. Может есть формула или с написанием макроса поможете. Буду рада любой информации.
Здравствуйте! Очень прошу вашей помощи. Моих познаний в Excel оказалось недостаточно для поставленной задачи. Есть файл сводный. Надо раскидать данный файла по листам книги согласно названию листа. Уже руками каждый месяц сил нету это делать. Может есть формула или с написанием макроса поможете. Буду рада любой информации.Vselennaya
Kuzmich, Да может и надо чтоб он создавал новые листы для новых номеров. В идеале надо чтоб я просто вставляла исходный файл, запускала макрос и он по листам раскидывал данные. Там еще после таблицы шапочка будет и над таблицей шапочка. Ещё бы ее заполнять. Там в шапочке номер указан будет (столбец D), а внизу в шапочку данные будут вставляться из таблицы тоже и из еще одной таблички с итоговыми значениями. Так вот вопрос возможно ли сделать так чтоб еще и шапочка заполнялась?
Kuzmich, Да может и надо чтоб он создавал новые листы для новых номеров. В идеале надо чтоб я просто вставляла исходный файл, запускала макрос и он по листам раскидывал данные. Там еще после таблицы шапочка будет и над таблицей шапочка. Ещё бы ее заполнять. Там в шапочке номер указан будет (столбец D), а внизу в шапочку данные будут вставляться из таблицы тоже и из еще одной таблички с итоговыми значениями. Так вот вопрос возможно ли сделать так чтоб еще и шапочка заполнялась?Vselennaya
StoTisteg, Новые данные будут каждый месяц добавляться и меняться. Номер из столбца D будет тот же, но будут новые добавляться номера с каждым месяцем
StoTisteg, Новые данные будут каждый месяц добавляться и меняться. Номер из столбца D будет тот же, но будут новые добавляться номера с каждым месяцемVselennaya
Sub iNomer() Dim i As Long Dim iLastRow As Long Dim iLR As Long Dim FoundCell As Range Dim FAdr As String Dim FAdr_Row As Long Dim EAdr_Row As Long Dim n As Integer With CreateObject("scripting.dictionary"): .comparemode = 1 n = 15 iLastRow = Cells(Rows.Count, "C").End(xlUp).Row Range("S15:S" & Cells(Rows.Count, "S").End(xlUp).Row).ClearContents For i = 15 To iLastRow 'выделяем из столбца C уникальные трехзначные номера If Cells(i, "C") <> "" Then If Not .exists(Left(Cells(i, "C").Value, 3)) Then 'если нет слова, то добавляем его в словарь и в столбец S .Add Left(Cells(i, "C").Value, 3), 1 Cells(n, "S") = Left(Cells(i, "C").Value, 3) n = n + 1 End If End If Next End With iLastRow = Cells(Rows.Count, "S").End(xlUp).Row For i = 15 To iLastRow 'цикл по уникальным номерам в S Set FoundCell = Columns(3).Find(Cells(i, "S"), , xlValues, xlPart) If Not FoundCell Is Nothing Then FAdr = FoundCell.Address FAdr_Row = FoundCell.Row 'первая строка с уникальным номером Do EAdr_Row = FoundCell.Row 'последняя строка с уникальным номером Set FoundCell = Columns(3).FindNext(FoundCell) Loop While FoundCell.Address <> FAdr End If With Worksheets(CStr(Cells(i, "S"))) 'очищаем диапазон на соответствующем листе .Range("B15:N" & .Cells(.Rows.Count, "B").End(xlUp).Row + 1).Clear 'копируем диапазон от первой до последней строки + 2 уникального номера Range("B" & FAdr_Row & ":N" & EAdr_Row + 2).Copy .Range("B15") iLR = .Cells(.Rows.Count, "B").End(xlUp).Row .Range("B" & iLR + 1) = "Всего" .Range("D" & iLR + 1) = Application.Sum(.Range("D15:D" & iLR)) .Range("E" & iLR + 1) = Application.Sum(.Range("E15:E" & iLR)) .Range("F" & iLR + 1) = Application.Sum(.Range("F15:F" & iLR)) .Range("N" & iLR + 1) = Application.Sum(.Range("N15:N" & iLR)) For n = iLR To 15 Step -1 'удаляем строки на соответствующем листе с Итого If .Cells(n, "B") Like "Итого*" Then .Rows(n).Delete End If Next End With Next End Sub
[/vba]
[vba]
Код
Sub iNomer() Dim i As Long Dim iLastRow As Long Dim iLR As Long Dim FoundCell As Range Dim FAdr As String Dim FAdr_Row As Long Dim EAdr_Row As Long Dim n As Integer With CreateObject("scripting.dictionary"): .comparemode = 1 n = 15 iLastRow = Cells(Rows.Count, "C").End(xlUp).Row Range("S15:S" & Cells(Rows.Count, "S").End(xlUp).Row).ClearContents For i = 15 To iLastRow 'выделяем из столбца C уникальные трехзначные номера If Cells(i, "C") <> "" Then If Not .exists(Left(Cells(i, "C").Value, 3)) Then 'если нет слова, то добавляем его в словарь и в столбец S .Add Left(Cells(i, "C").Value, 3), 1 Cells(n, "S") = Left(Cells(i, "C").Value, 3) n = n + 1 End If End If Next End With iLastRow = Cells(Rows.Count, "S").End(xlUp).Row For i = 15 To iLastRow 'цикл по уникальным номерам в S Set FoundCell = Columns(3).Find(Cells(i, "S"), , xlValues, xlPart) If Not FoundCell Is Nothing Then FAdr = FoundCell.Address FAdr_Row = FoundCell.Row 'первая строка с уникальным номером Do EAdr_Row = FoundCell.Row 'последняя строка с уникальным номером Set FoundCell = Columns(3).FindNext(FoundCell) Loop While FoundCell.Address <> FAdr End If With Worksheets(CStr(Cells(i, "S"))) 'очищаем диапазон на соответствующем листе .Range("B15:N" & .Cells(.Rows.Count, "B").End(xlUp).Row + 1).Clear 'копируем диапазон от первой до последней строки + 2 уникального номера Range("B" & FAdr_Row & ":N" & EAdr_Row + 2).Copy .Range("B15") iLR = .Cells(.Rows.Count, "B").End(xlUp).Row .Range("B" & iLR + 1) = "Всего" .Range("D" & iLR + 1) = Application.Sum(.Range("D15:D" & iLR)) .Range("E" & iLR + 1) = Application.Sum(.Range("E15:E" & iLR)) .Range("F" & iLR + 1) = Application.Sum(.Range("F15:F" & iLR)) .Range("N" & iLR + 1) = Application.Sum(.Range("N15:N" & iLR)) For n = iLR To 15 Step -1 'удаляем строки на соответствующем листе с Итого If .Cells(n, "B") Like "Итого*" Then .Rows(n).Delete End If Next End With Next End Sub
Kuzmich, Спасибо. А как сделать так, чтобы шапочка автомотически смещалась вниз под каждой таблицей. Под шапочкой подразумевается текстовые данные, где будет указан за какой период сформирован акт, место для подписей и фамилий. И еще марос не корректно работает с номерами с индексами. Он один номер из перечня с индексами добавляет в предыдущую вкладку. И почему- то не воспринимает номера, где впереди "0" стоит. В идеале он должен просто игнорировать "0" перед номера. Это чисто человеческий фактор. Кто-то ставит "0", кто-то нет
Kuzmich, Спасибо. А как сделать так, чтобы шапочка автомотически смещалась вниз под каждой таблицей. Под шапочкой подразумевается текстовые данные, где будет указан за какой период сформирован акт, место для подписей и фамилий. И еще марос не корректно работает с номерами с индексами. Он один номер из перечня с индексами добавляет в предыдущую вкладку. И почему- то не воспринимает номера, где впереди "0" стоит. В идеале он должен просто игнорировать "0" перед номера. Это чисто человеческий фактор. Кто-то ставит "0", кто-то нетVselennaya
Kuzmich, шапочка будет одинаковой, но в ней будут цифры согласно каждому акту проставляться. У меня будет отдельная таблица откуда ссылочками проставляться данные должны в эту шапочку. Я пример вложила шапочки. И вордовский документ показывает, где именно не корректно. Просто на файле с примером все хорошо, а на свои данные, когда макрос делаю, получается , что берет одну строку с последующего листа в предыдущий. Да. В номере есть "о" впереди, а в листе нет. Может можно просто в исходном файле впереди стоящие нули убирать. Просто они там не принципиально нужны.
Kuzmich, шапочка будет одинаковой, но в ней будут цифры согласно каждому акту проставляться. У меня будет отдельная таблица откуда ссылочками проставляться данные должны в эту шапочку. Я пример вложила шапочки. И вордовский документ показывает, где именно не корректно. Просто на файле с примером все хорошо, а на свои данные, когда макрос делаю, получается , что берет одну строку с последующего листа в предыдущий. Да. В номере есть "о" впереди, а в листе нет. Может можно просто в исходном файле впереди стоящие нули убирать. Просто они там не принципиально нужны.Vselennaya
Kuzmich, таблицу в примере добавила из которой данные в шапочку будут идти. И еще файл прикрепила, где не корректно получается расстановка. Это уже примерные мои данные. Там просто номера могут быть и 3 и 4 -значные в будущем.
Kuzmich, таблицу в примере добавила из которой данные в шапочку будут идти. И еще файл прикрепила, где не корректно получается расстановка. Это уже примерные мои данные. Там просто номера могут быть и 3 и 4 -значные в будущем.Vselennaya