Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос дерева с дополнительным условием - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос дерева с дополнительным условием
Geminus Дата: Понедельник, 23.10.2023, 13:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте уважаемые программисты! Прошу помочь.
Имеется файл с максором дерева, взятый на этом форуме. Работает отлично но не до конца решает мою задачу.

Описание: на вкладке "Исходные данные" есть номер чертежа детали и номер чертежа сборки. На вкладке "Макрос" Макрос раскладывает детали в дерево, при этом у каждой детали есть свой уникальный номер "Сквозной номер". Для дальнейшей работы с данными, получаемыми с дерева необходимо, чтобы он при построении дерева также кореектно подтягивал этот сквозной номер.
Суть в том, что одна деталь может входить (повторяться) в несколько сборочных чертежей и при дальнейшей работе с данными, после раскладки в дерево, непонятно на какой детали (на какой паре Деталь/Сборка) этот сквозной номер.

Запрос: Необходимо, чтобы после выполнения Макроса, в столбце "С" появлялся сквозной номер.

Подскажите пожалуйста возможно ли решить данную задачу и как?
К сообщению приложен файл: makros_dereva.xlsm (375.9 Kb)


Сообщение отредактировал Geminus - Понедельник, 23.10.2023, 13:54
 
Ответить
СообщениеЗдравствуйте уважаемые программисты! Прошу помочь.
Имеется файл с максором дерева, взятый на этом форуме. Работает отлично но не до конца решает мою задачу.

Описание: на вкладке "Исходные данные" есть номер чертежа детали и номер чертежа сборки. На вкладке "Макрос" Макрос раскладывает детали в дерево, при этом у каждой детали есть свой уникальный номер "Сквозной номер". Для дальнейшей работы с данными, получаемыми с дерева необходимо, чтобы он при построении дерева также кореектно подтягивал этот сквозной номер.
Суть в том, что одна деталь может входить (повторяться) в несколько сборочных чертежей и при дальнейшей работе с данными, после раскладки в дерево, непонятно на какой детали (на какой паре Деталь/Сборка) этот сквозной номер.

Запрос: Необходимо, чтобы после выполнения Макроса, в столбце "С" появлялся сквозной номер.

Подскажите пожалуйста возможно ли решить данную задачу и как?

Автор - Geminus
Дата добавления - 23.10.2023 в 13:06
NikitaDvorets Дата: Понедельник, 23.10.2023, 17:36 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 603
Репутация: 137 ±
Замечаний: 0% ±

Excel 2019
Geminus, добрый день.
Как понял. Макрос, привязанный к кнопке "извлечь сквозной номер".
К сообщению приложен файл: makros_dereva_23_10_23_v2.xlsm (408.2 Kb)
 
Ответить
СообщениеGeminus, добрый день.
Как понял. Макрос, привязанный к кнопке "извлечь сквозной номер".

Автор - NikitaDvorets
Дата добавления - 23.10.2023 в 17:36
Geminus Дата: Вторник, 24.10.2023, 08:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, добрый день! Спасибо за столь быструю реакцию.
Да, необходимо извлечь сквозной номер в столбец "C".
В направленном Вами файле проблема не решена. Номера повторяются (подсветил цветом), а они не должны повторяться. "Сквозной номер" - это уникальный номер который присваивается Паре - "Чертеж ДСЕ"/"Чертеж сборки". После раскладки в дерево номера должны разложиться корректно и соответствовать "Паре" как на листе "Исходные данные".

Те строчки в "Исходных данных" где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут. Это нормально.
Надеюсь смог объяснить )
К сообщению приложен файл: makros_dereva_24_10_23_v2.xlsm (395.4 Kb)
 
Ответить
СообщениеNikitaDvorets, добрый день! Спасибо за столь быструю реакцию.
Да, необходимо извлечь сквозной номер в столбец "C".
В направленном Вами файле проблема не решена. Номера повторяются (подсветил цветом), а они не должны повторяться. "Сквозной номер" - это уникальный номер который присваивается Паре - "Чертеж ДСЕ"/"Чертеж сборки". После раскладки в дерево номера должны разложиться корректно и соответствовать "Паре" как на листе "Исходные данные".

Те строчки в "Исходных данных" где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут. Это нормально.
Надеюсь смог объяснить )

Автор - Geminus
Дата добавления - 24.10.2023 в 08:13
NikitaDvorets Дата: Вторник, 24.10.2023, 10:13 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 603
Репутация: 137 ±
Замечаний: 0% ±

Excel 2019
Цитата
Geminus, добрый день.
Надеюсь смог объяснить

Возможно и нет...
Думаю, поможет описание алгоритма поиска сквозного номера хотя бы на одном примере, например, для 5БС.310.631
 
Ответить
Сообщение
Цитата
Geminus, добрый день.
Надеюсь смог объяснить

Возможно и нет...
Думаю, поможет описание алгоритма поиска сквозного номера хотя бы на одном примере, например, для 5БС.310.631

Автор - NikitaDvorets
Дата добавления - 24.10.2023 в 10:13
Geminus Дата: Среда, 25.10.2023, 10:03 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, добрый день!
Если бы я понимал логику работы исходного макроса, то наверное мне было бы проще, но я постарался изложить очень подробно, (во вложении).

Я описал алгоритм, так как я действовал при ручной расстановке этих номеров.
К сообщению приложен файл: algoritm_makros_dereva_25_10_2.xlsm (397.7 Kb)
 
Ответить
СообщениеNikitaDvorets, добрый день!
Если бы я понимал логику работы исходного макроса, то наверное мне было бы проще, но я постарался изложить очень подробно, (во вложении).

Я описал алгоритм, так как я действовал при ручной расстановке этих номеров.

Автор - Geminus
Дата добавления - 25.10.2023 в 10:03
NikitaDvorets Дата: Среда, 25.10.2023, 12:53 | Сообщение № 6
Группа: Авторы
Ранг: Ветеран
Сообщений: 603
Репутация: 137 ±
Замечаний: 0% ±

Excel 2019
Geminus, добрый день.
Цитата
Я описал алгоритм

Да, стало немного понятнее.
Добавил доп. столбец для поиска на листе "Исходные данные".
Однако имеются случаи дублирования сквозных номеров. Возможно нужны доп. ограничения при поиске.
К сообщению приложен файл: algoritm_makros_dereva_25_10_2.xlsb (321.2 Kb)
 
Ответить
СообщениеGeminus, добрый день.
Цитата
Я описал алгоритм

Да, стало немного понятнее.
Добавил доп. столбец для поиска на листе "Исходные данные".
Однако имеются случаи дублирования сквозных номеров. Возможно нужны доп. ограничения при поиске.

Автор - NikitaDvorets
Дата добавления - 25.10.2023 в 12:53
Geminus Дата: Четверг, 26.10.2023, 11:06 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, добрый день!
из 347 номеров, 74 присвоены не корректно.
Какое либо дополнительное ограничение я придумать пока не могу.
Есть такое предположение, а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку и потом подтягивать (ВПРить) сквозные номера из листа "Исходные данные" сравнивая их с созданным Вами дополнительным столбцом?

Как их собрать в пару? я вижу такой алгоритм:
Программа берет Столбец 1 и находит первый по списку номер, и образует пары с номерами из Столбца 2, анализируя каждую строчку и останавливается в тот момент, когда в Столбце 1 появляется следующий по списку номер.
Как только появляется следующий по списку номер ситуация повторяется.
Когда все строчки пройдены, программа берет следующие два столбца №2 и №3 и опять делает циклы
Затем следующие № 3 и № 4…
Получится список пар, такой который создали Вы на вкладке «Исходные данные». Ну а далее ВПР, как я писал в начале…
 
Ответить
СообщениеNikitaDvorets, добрый день!
из 347 номеров, 74 присвоены не корректно.
Какое либо дополнительное ограничение я придумать пока не могу.
Есть такое предположение, а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку и потом подтягивать (ВПРить) сквозные номера из листа "Исходные данные" сравнивая их с созданным Вами дополнительным столбцом?

Как их собрать в пару? я вижу такой алгоритм:
Программа берет Столбец 1 и находит первый по списку номер, и образует пары с номерами из Столбца 2, анализируя каждую строчку и останавливается в тот момент, когда в Столбце 1 появляется следующий по списку номер.
Как только появляется следующий по списку номер ситуация повторяется.
Когда все строчки пройдены, программа берет следующие два столбца №2 и №3 и опять делает циклы
Затем следующие № 3 и № 4…
Получится список пар, такой который создали Вы на вкладке «Исходные данные». Ну а далее ВПР, как я писал в начале…

Автор - Geminus
Дата добавления - 26.10.2023 в 11:06
NikitaDvorets Дата: Четверг, 26.10.2023, 12:01 | Сообщение № 8
Группа: Авторы
Ранг: Ветеран
Сообщений: 603
Репутация: 137 ±
Замечаний: 0% ±

Excel 2019
Geminus, добрый день.
Цитата
а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку

Это уже делается в программе.
Учтен комментарий: ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут
Изменится ли статистика корректности в обновленном файле?
К сообщению приложен файл: algoritm_makros_dereva_26_10_2.xlsb (321.3 Kb)
 
Ответить
СообщениеGeminus, добрый день.
Цитата
а что если программа будет собирать (сцеплять) номер чертежей из разложенного дерева обратно в строчку

Это уже делается в программе.
Учтен комментарий: ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут
Изменится ли статистика корректности в обновленном файле?

Автор - NikitaDvorets
Дата добавления - 26.10.2023 в 12:01
Geminus Дата: Четверг, 26.10.2023, 16:59 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, добрый день!
Практически нет, в последнем файле 70 не корректных номеров.
Я не понимаю как работает макрос и что в него вшито  и следовательно мне не понятно, почему в ячейке C17 стоит номер 27, когда правильный номер 66 (лист «Макрос 2», я создал для информации столбец «Правильный скв. №».
Если алгоритм выполняется, то программа …..дойдя до ячейки J18 не должна образовать никакую пару, так как в ячейке K19 нет никакого номера чертежа. Что же она тогда образовала, чтобы при ВПРе таблицы «Исходные данные» наткнуться на номер 8БС.182.697-06 и найти неправильный сквозной номер – 27 ?
Быть может стоит изменить порядок сцепки номеров? В столбце D @Синтетический номер»? Сделать сначала чертеж сборки а потом чертеж ДСЕ?
В файле добавил Примечание с описанием моих наблюдений.

Надеюсь Вы правильно поняли мой комментарий - ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут’
Я лишь хотел обратить внимание ,что в поле Макрос нет строчек, в которых отсутствует один из номеров чертежей в паре в исходных данных. Я имею ввиду, что если деталей в списке всего – 379 а в столбце B «Исходные данные» 76 пустых строк (или отсутствующих номеров ДСЕ), то следовательно эти строчки в поле Макрос не появится и сквозных номеров соответствующих этим ячейкам не будет.
К сообщению приложен файл: 5719735.xlsb (321.3 Kb)
 
Ответить
СообщениеNikitaDvorets, добрый день!
Практически нет, в последнем файле 70 не корректных номеров.
Я не понимаю как работает макрос и что в него вшито  и следовательно мне не понятно, почему в ячейке C17 стоит номер 27, когда правильный номер 66 (лист «Макрос 2», я создал для информации столбец «Правильный скв. №».
Если алгоритм выполняется, то программа …..дойдя до ячейки J18 не должна образовать никакую пару, так как в ячейке K19 нет никакого номера чертежа. Что же она тогда образовала, чтобы при ВПРе таблицы «Исходные данные» наткнуться на номер 8БС.182.697-06 и найти неправильный сквозной номер – 27 ?
Быть может стоит изменить порядок сцепки номеров? В столбце D @Синтетический номер»? Сделать сначала чертеж сборки а потом чертеж ДСЕ?
В файле добавил Примечание с описанием моих наблюдений.

Надеюсь Вы правильно поняли мой комментарий - ' Те строчки в "Исходных данных", где отсутствует номер чертежа ДСЕ, не переносятся в дерево и соответственно сквозные номера отображаться не будут’
Я лишь хотел обратить внимание ,что в поле Макрос нет строчек, в которых отсутствует один из номеров чертежей в паре в исходных данных. Я имею ввиду, что если деталей в списке всего – 379 а в столбце B «Исходные данные» 76 пустых строк (или отсутствующих номеров ДСЕ), то следовательно эти строчки в поле Макрос не появится и сквозных номеров соответствующих этим ячейкам не будет.

Автор - Geminus
Дата добавления - 26.10.2023 в 16:59
NikitaDvorets Дата: Пятница, 27.10.2023, 12:37 | Сообщение № 10
Группа: Авторы
Ранг: Ветеран
Сообщений: 603
Репутация: 137 ±
Замечаний: 0% ±

Excel 2019
Geminus, добрый день.
Существенно переработал алгоритм расчета.
Большинство дублей исправлено. Посмотрите, почему есть некоторые совпадения.
К сообщению приложен файл: algoritm_makros_dereva_27_10_2.xlsm (420.3 Kb)


Сообщение отредактировал NikitaDvorets - Пятница, 27.10.2023, 16:05
 
Ответить
СообщениеGeminus, добрый день.
Существенно переработал алгоритм расчета.
Большинство дублей исправлено. Посмотрите, почему есть некоторые совпадения.

Автор - NikitaDvorets
Дата добавления - 27.10.2023 в 12:37
Geminus Дата: Понедельник, 30.10.2023, 11:08 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

NikitaDvorets, добрый день!
Большое спасибо! в файле, который Вы выложили в пятницу, до корректировки, все четко работает. Номера извлекаются корректно. Те 5 номеров, которые не соответствуют, должны корректироваться самим пользователем, в ручном режиме. От этого не уйти, так как это повторяющиеся сборки с одинаковыми деталями в них. Прилагаю пятничный файл до Вашего редактирования. Вкладка "Макрос"

Единственная проблема, перестал работать макрос, который раскладывает дерево ))))
в этом же файле вкладка - "Макрос как должно быть". Столбец со сквозным номером можно перенести в столбец "W".
должен сначала выполняться макрос, который раскладывает дерево, а потом извлечение сквозного номера. Подправьте пожалуйста.
К сообщению приложен файл: algoritm_makros_dereva_30_10_2.xlsb (325.0 Kb)
 
Ответить
СообщениеNikitaDvorets, добрый день!
Большое спасибо! в файле, который Вы выложили в пятницу, до корректировки, все четко работает. Номера извлекаются корректно. Те 5 номеров, которые не соответствуют, должны корректироваться самим пользователем, в ручном режиме. От этого не уйти, так как это повторяющиеся сборки с одинаковыми деталями в них. Прилагаю пятничный файл до Вашего редактирования. Вкладка "Макрос"

Единственная проблема, перестал работать макрос, который раскладывает дерево ))))
в этом же файле вкладка - "Макрос как должно быть". Столбец со сквозным номером можно перенести в столбец "W".
должен сначала выполняться макрос, который раскладывает дерево, а потом извлечение сквозного номера. Подправьте пожалуйста.

Автор - Geminus
Дата добавления - 30.10.2023 в 11:08
NikitaDvorets Дата: Понедельник, 30.10.2023, 12:11 | Сообщение № 12
Группа: Авторы
Ранг: Ветеран
Сообщений: 603
Репутация: 137 ±
Замечаний: 0% ±

Excel 2019
Geminus,
Цитата
перестал работать макрос, который раскладывает дерево

Это связано с назначенной в макросе "Дерево" нумерацией столбцов. Она должна начинаться с 1 в столбце D и т.д.
Подправил, оба макроса выделены кнопками и сообщают о завершении работы. Макрос GetNum показывает ход процесса назначения сквозных номеров.
Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.
К сообщению приложен файл: 5001045.xlsb (279.2 Kb)
 
Ответить
СообщениеGeminus,
Цитата
перестал работать макрос, который раскладывает дерево

Это связано с назначенной в макросе "Дерево" нумерацией столбцов. Она должна начинаться с 1 в столбце D и т.д.
Подправил, оба макроса выделены кнопками и сообщают о завершении работы. Макрос GetNum показывает ход процесса назначения сквозных номеров.
Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.

Автор - NikitaDvorets
Дата добавления - 30.10.2023 в 12:11
Geminus Дата: Вторник, 31.10.2023, 15:09 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.

ничего не понял :D , но все работает. Еще раз огромное спасибо!
:hello:
 
Ответить
Сообщение
Можно стереть все результаты построения дерева на листе "макрос", начиная с ячейки D2 и выделяя диапазон вправо-вниз, и затем запустить оба макроса по очереди из ячеек A1 и B1.

ничего не понял :D , но все работает. Еще раз огромное спасибо!
:hello:

Автор - Geminus
Дата добавления - 31.10.2023 в 15:09
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!