Прошу вас, помочь, с макросами не дружу , могу только ими пользоваться.
Есть таблицаПРИМЕР.xlsx(23.56 КБ), на листе "Как сейчас" показана таблица как она заполнена сейчас. Необходимо, чтобы в зависимости от рабочего места и номера указанного в столбце "Материал_ВОМ", добавлялись новые заполненные строки (показано на листе "Как должно быть", выделены красным шрифтом). Добавление новых строк должно происходить по необходимости, например по нажатию кнопки "Добавить". Ячейки выделенные оранжевым цветом, заполняются из таблицы приведенной на листе "Табл.рабочие места" (в примере указано ограниченной количество рабочих мест, на самом деле их гораздо больше) Голубым выделено - номер по порядку с шагом 10
Уважаемые Экселепланетяне , обращаюсь к вам за помощью как к высшему разуму....помогите, пожалуйста, очень надо!!!! Заполнять в ручную, проблематично, очень большой объем данных. Если аналогичная тема уже существует, то прошу подсказать где можно с ней ознакомиться
Марина К написал: Заполнять в ручную, проблематично, очень большой объем данных.
Просмотрел файл но всей логики от куда что берется, так и не понял. Про быстрое заполнение (как понял), могу предложить следующее: Копируем данные шести столбцов листа "Табл.рабочие места" в нужные столбцы листа "Как должно быть" ниже последней строки с данными. Открываем настраиваемый фильтр и сортируем всю таблицу по нужному или нужным столбцам, предположим по столбцу "Рабочее место". В результате данные сформируются по порядку, но в строках останутся пустые ячейки. Как заполнить пустые ячейки значениями сверху посмотрите здесь.
gling написал: Просмотрел файл но всей логики от куда что берется, так и не понял. Про быстрое заполнение (как понял), могу предложить следующее:
Дело в том, что таблица "Как сейчас" уже заполнена, она довольно таки большая, чтобы попробовать вариант который вы предложили, необходимо вставлять пустаые строки между номерами в столбце "В", при это как видно на листе "Как должно быть" количествл пустых строк будет разным, а это очень трудоемко....возможно есть макрос который позволит, хотя бы добавлять пустые строки, например 10 строк, чтобы как-то ускорить этот процесс.
'запускать при активном листе "Как сейчас"
Sub AddRows()
Dim RowWorkPlace As Long
Dim ArrWorkPlace
Dim i As Long
Dim iLastRow As Long
Dim FoundFruit As Range
Dim TablWorkPlace As Worksheet
Dim FAdr As String
Dim FoundCell As Range
Dim Poz As Double
Set TablWorkPlace = ThisWorkbook.Worksheets("Табл.рабочие места")
iLastRow = Cells(Rows.Count, "AS").End(xlUp).Row
Range("AV1") = Range("AS1") 'ищем все уникальные рабочие места
Range("AS1:AS" & iLastRow).AdvancedFilter xlFilterCopy, CopyToRange:=Range("AV1"), Unique:=True
iLastRow = Cells(Rows.Count, "AV").End(xlUp).Row
ArrWorkPlace = Range("AV2:AV" & iLastRow).Value 'раб.места в массив
For i = UBound(ArrWorkPlace) To 1 Step -1 'цикл по рабочим уникальным местам
'ищем последнюю строку с рабочим местом на листе "Как сейчас", чтобы вставить строки
Set FoundCell = Columns("AS").Find(ArrWorkPlace(i, 1), , xlValues, xlWhole, , xlPrevious)
RowWorkPlace = FoundCell.Row 'строку вставляем в RowWorkPlace+1
Set FoundCell = TablWorkPlace.Columns(2).Find(ArrWorkPlace(i, 1), , xlValues, xlWhole)
If Not FoundCell Is Nothing Then 'нашли рабочее место на листе "Табл.рабочие места"
FAdr = FoundCell.Address
Poz = Val(Cells(RowWorkPlace, "V")) 'предыдущая Поз
Do
Rows(RowWorkPlace + 1).Insert 'вставляем строку
Cells(RowWorkPlace + 1, "V") = Poz + 10 'Поз
Cells(RowWorkPlace + 1, "V").NumberFormat = "0000"
Cells(RowWorkPlace + 1, "AG") = TablWorkPlace.Cells(FoundCell.Row, "C") 'Компонент
Cells(RowWorkPlace + 1, "AH") = TablWorkPlace.Cells(FoundCell.Row, "D") 'название компонента
Cells(RowWorkPlace + 1, "Y") = TablWorkPlace.Cells(FoundCell.Row, "E") 'Норма расхода
Cells(RowWorkPlace + 1, "Z") = TablWorkPlace.Cells(FoundCell.Row, "F") 'ед.изм
'остальные ячейки в строке аналогично
RowWorkPlace = RowWorkPlace + 1
Poz = Poz + 10
Set FoundCell = TablWorkPlace.Columns(2).FindNext(FoundCell)
Loop While FoundCell.Address <> FAdr
End If
Next
End Sub
Марина К написал: необходимо вставлять пустаые строки между номерами в столбце "В",
Об этом и писал, вставлять ни чего не надо, всё само организуется после сортировки. Посмотрите файл, на листе "Как сейчас" проделал процедуру описанную в сообщении #6, сверьте результат с листом "Как должно быть", глубоко не вникал но они похожи. Правда при выполнении пришлось предварительно на листе "Как сейчас" заполнить все пустые ячейки пробелом. Сделать это можно по примеру по ссылке из сообщения #6, только вместо = и стрелки вверх нужно нажать пробел, а потом Ctrl+Enter. Попробуйте пройти сообщение #6 по шагам. Конечно макросом быстрее, но нужно ждать пока его, кто нибудь напишет.
gling написал: Попробуйте пройти сообщение #6 по шагам. Конечно макросом быстрее, но нужно ждать пока его, кто нибудь напишет.
Да, действительно и ваш вариант ускоряет процесс...как-то в таком ключе я даже и не думала ...спасибо, теперь буду знать еще один вариант релизации ....