Не правильно понял - перечитал. Тогда как Вы себе представляете итоговую таблицу? На сколько я понял суть таблицы - отобразить состав узлов в деталях, а не в узлах. Распишите на примере 4-го узла как должна выглядеть итоговая таблица - полностью... т.е. в окончательном варианте.
, если не трудно попробуйте макрос во вложении из 19 сообщения
Так у Вас там данные не в таком виде как в предыдущих примерах. Макрос смотрит код узла потом находит строку с этим узлом в на листе "Состав узлов" и "идет" по столбцам до конца, пока они не закончатся.
У Вас в 19-м посте данные на листе "Состав узлов" совсем не так сделаны. Добавил авто-обновление сводной таблицы
Не правильно понял - перечитал. Тогда как Вы себе представляете итоговую таблицу? На сколько я понял суть таблицы - отобразить состав узлов в деталях, а не в узлах. Распишите на примере 4-го узла как должна выглядеть итоговая таблица - полностью... т.е. в окончательном варианте.
, если не трудно попробуйте макрос во вложении из 19 сообщения
Так у Вас там данные не в таком виде как в предыдущих примерах. Макрос смотрит код узла потом находит строку с этим узлом в на листе "Состав узлов" и "идет" по столбцам до конца, пока они не закончатся.
У Вас в 19-м посте данные на листе "Состав узлов" совсем не так сделаны. Добавил авто-обновление сводной таблицыSLAVICK
Если честно я ничего не понял из последних файлов :
Как - то так это с примечаниями? И где у Вас в примере понятен состав 1-го и 2-го узла? И почему тогда детали должны суммироваться в одном узле, если они комплектующие разных узлов, и для разных узлов их нужно разное количество? Количество деталей без повторов есть на листе "Комплект Свод"
Сделайте таблицу в таком виде как Вы хотите ее увидеть в итоге на новом листе рядом с листом с примечаниями.(чтобы там не было ничего лишнего, только то что должно быть в точности в таком виде как Вы хотите.).
ЗЫ Может я еще не проснулся и кто-нибудь из форумчан понял что Вы хотите
Если честно я ничего не понял из последних файлов :
Как - то так это с примечаниями? И где у Вас в примере понятен состав 1-го и 2-го узла? И почему тогда детали должны суммироваться в одном узле, если они комплектующие разных узлов, и для разных узлов их нужно разное количество? Количество деталей без повторов есть на листе "Комплект Свод"
Сделайте таблицу в таком виде как Вы хотите ее увидеть в итоге на новом листе рядом с листом с примечаниями.(чтобы там не было ничего лишнего, только то что должно быть в точности в таком виде как Вы хотите.).
ЗЫ Может я еще не проснулся и кто-нибудь из форумчан понял что Вы хотитеSLAVICK
Иногда все проще чем кажется с первого взгляда.
Сообщение отредактировал SLAVICK - Понедельник, 25.05.2015, 13:48
Sub main() 'with using reference MS Scripting Runtime Dim s$, mnt&, d As New Dictionary s = "Узел 000.004": mnt = 1 d.CompareMode = 1
Call ertert(d, s, mnt)
Range("K3:L3").Resize(d.Count).Value = Application.Transpose(Array(d.Keys, d.Items)) End Sub
Sub ertert(d As Dictionary, ByVal t As String, ByVal k As Long) Dim x, j&, r As Range Set r = Sheets("Состав узлов").Columns(1).Find(t, LookIn:=xlValues, lookat:=xlWhole) If r Is Nothing Then MsgBox "oops", 48: Exit Sub
x = Range(r, Sheets("Состав узлов").Cells(r.Row, Columns.Count).End(xlToLeft)).Value For j = 2 To UBound(x, 2) Step 2 If d.Exists(x(1, j)) Then d.Item(x(1, j)) = d.Item(x(1, j)) + x(1, j + 1) * k Else d.Item(x(1, j)) = x(1, j + 1) * k End If If InStr(x(1, j), "Узел") Then ertert d, x(1, j), x(1, j + 1) End If Next j End Sub
[/vba]
еще вариант [vba]
Код
Sub main() 'with using reference MS Scripting Runtime Dim s$, mnt&, d As New Dictionary s = "Узел 000.004": mnt = 1 d.CompareMode = 1
Call ertert(d, s, mnt)
Range("K3:L3").Resize(d.Count).Value = Application.Transpose(Array(d.Keys, d.Items)) End Sub
Sub ertert(d As Dictionary, ByVal t As String, ByVal k As Long) Dim x, j&, r As Range Set r = Sheets("Состав узлов").Columns(1).Find(t, LookIn:=xlValues, lookat:=xlWhole) If r Is Nothing Then MsgBox "oops", 48: Exit Sub
x = Range(r, Sheets("Состав узлов").Cells(r.Row, Columns.Count).End(xlToLeft)).Value For j = 2 To UBound(x, 2) Step 2 If d.Exists(x(1, j)) Then d.Item(x(1, j)) = d.Item(x(1, j)) + x(1, j + 1) * k Else d.Item(x(1, j)) = x(1, j + 1) * k End If If InStr(x(1, j), "Узел") Then ertert d, x(1, j), x(1, j + 1) End If Next j End Sub
,а вот Вариант SLAVICK, работает именно так как был поставлен вопрос, но все ровно я бы хотел вернуться к оригиналу т.к. форма криво имитируемая оригинал не совсем удобна (дифицит данных)хотел код прилипить, но заблудился, что где? Координально поменял состав узлов, в этом и вся соль.
Очень приятно, что есть не равнодушные к моему вопросу. nilem, мне кажется у Вашего варианта жестко привязан запрос
,а вот Вариант SLAVICK, работает именно так как был поставлен вопрос, но все ровно я бы хотел вернуться к оригиналу т.к. форма криво имитируемая оригинал не совсем удобна (дифицит данных)хотел код прилипить, но заблудился, что где? Координально поменял состав узлов, в этом и вся соль.ZamoK
А почему сразу не показали оригинал? Надеюсь вид данных больше не будет меняться В первоначальных файлах Вы хотели результат в одной форме... теперь туда добавилось еще пару столбцов ? В приложении переделал файл + добавил кое-что на лист "Перечень" в диапазон B1:B20 - помоему так удобнее
А почему сразу не показали оригинал? Надеюсь вид данных больше не будет меняться В первоначальных файлах Вы хотели результат в одной форме... теперь туда добавилось еще пару столбцов ? В приложении переделал файл + добавил кое-что на лист "Перечень" в диапазон B1:B20 - помоему так удобнее SLAVICK
Ну вот Вячеслав как бы почти оригинал (урезанный т.к. разглашение тайны и т.д.) На листе Комплект тот самый ВПР про который я упоминал выше, но я так понимаю можно же и макросом вытягивать Наименование, с листа Данные. Не ругайте сильно если что не так, в смысле кардинальных изменений . К сообщению приложен файл: _3.xls(97Kb)
У Вас в 19-м посте данные на листе "Состав узлов" совсем не так сделаны.
Вид данных менятся не будет т.к. вопрос уже почти решён. Лист Как то так и Комплект свод теперь получается несут одну и туже информацию т.е. можно что-то удалить ? Сводная как только она появилась полностью разворачивала (для просмотра) из чего состоит конкретный узел, теперь показывает только 1 деталь, это недоработка или так изадумано?
Ну вот Вячеслав как бы почти оригинал (урезанный т.к. разглашение тайны и т.д.) На листе Комплект тот самый ВПР про который я упоминал выше, но я так понимаю можно же и макросом вытягивать Наименование, с листа Данные. Не ругайте сильно если что не так, в смысле кардинальных изменений . К сообщению приложен файл: _3.xls(97Kb)
У Вас в 19-м посте данные на листе "Состав узлов" совсем не так сделаны.
Вид данных менятся не будет т.к. вопрос уже почти решён. Лист Как то так и Комплект свод теперь получается несут одну и туже информацию т.е. можно что-то удалить ? Сводная как только она появилась полностью разворачивала (для просмотра) из чего состоит конкретный узел, теперь показывает только 1 деталь, это недоработка или так изадумано?ZamoK
Я не Гуру, но стремлюсь!
Сообщение отредактировал ZamoK - Среда, 27.05.2015, 12:56
Сводная как только она появилась полностью разворачивала (для просмотра) из чего состоит конкретный узел
Да я убрал пару полей, чтоб было одинаково с листом "Как то так" Вы можете вернуть поля назад, или поменять их местами .... - она будет обновляться без проблем Сделал вроде как было...
Сводная как только она появилась полностью разворачивала (для просмотра) из чего состоит конкретный узел
Да я убрал пару полей, чтоб было одинаково с листом "Как то так" Вы можете вернуть поля назад, или поменять их местами .... - она будет обновляться без проблем Сделал вроде как было...SLAVICK
Узлы разузловывает только на 2 подуровня, а третий (301314.204) разузлован не был. Можно ли увеличить подуровни. Матрёшек внутри может быть до 15 штук.
Узлы разузловывает только на 2 подуровня, а третий (301314.204) разузлован не был. Можно ли увеличить подуровни. Матрёшек внутри может быть до 15 штук.ZamoK
Да и хотел спросить можно ли добавить выделение цветом на листе Комплект позиции по которой есть проблема, например позиция есть а деталей в составе нет искуствено создал ситуацию в приложении. Или как вариат приклеить такое: [vba]
Код
MsgBox("Отсутствует часть данных!!! Продолжить?", vbQuestion + vbYesNo) = vbNo
[/vba]
P.S. Все узлы начинаются на 6 или 3, думаю на это можно опереться.
Да и хотел спросить можно ли добавить выделение цветом на листе Комплект позиции по которой есть проблема, например позиция есть а деталей в составе нет искуствено создал ситуацию в приложении. Или как вариат приклеить такое: [vba]
Код
MsgBox("Отсутствует часть данных!!! Продолжить?", vbQuestion + vbYesNo) = vbNo
[/vba]
P.S. Все узлы начинаются на 6 или 3, думаю на это можно опереться.ZamoK