Страницы: 1
RSS
Как автоматизировать выгрузку технического задания по номеру из каталога?
 
Доброго времени суток!
Прошу помочь советом или идеей.
Вопрос такой:
Во вложении есть файл. Там представлены несколько столбцов:
Каталожный номер (он же артикул), наименование с характеристикой, допуски или соответствия, точные значения
Для примера привел небольшой кусок. Получается что каждому каталожнику соответствует целый перечень характеристик с значениями. Хочется использовать этот файл как базу для подгрузки данных.
Теперь представим, что есть список каталожных номеров (просто голый список). Который мы заносим в книгу эксель, а на выходе получаем техническое задание по этим запрашиваемым каталожным номерам в таком же формате, как оно приведено в файле.

Каким способом это можно реализовать? Макросами? ВПР или чем-то похожим? В какой области искать ответ?
Изменено: Krestuk - 24.03.2019 22:44:15
 
Krestuk, это надо?
 
artyrH, почти оно. Однако такой вариант подходит для выгрузки артикулов по одному, а не списком сразу.
Подглядел у коллег макрос, в результате которого получается почти тот результат, который мне нужен. За тем исключением, что выгружаются не все 4 столбца, а только 3.
Текст макроса во вложении. Только начал учить VBA и не очень понимаю, как внести изменения так, что бы получить в выгрзку четвертый столбец из базы
Изменено: Krestuk - 25.03.2019 16:48:46
 
Цитата
Krestuk написал:
Подглядел у коллег макрос
отличный макрос!!! вы наверное когда его стянули - то растянули
 
artyrH,по большей части, я не понимаю, что в нем происходит.  
 
Krestuk, отдайте обратно пока не поздно, а то потом еще счет предъявят)
 
могу помочь формулой
Изменено: artyrH - 25.03.2019 19:26:55
 
Если есть возможность, то я бы не отказался от объяснения того макроса, что я скинул выше в вордовском файле, т.к. она точно работает, но выгружает не 4, а 3 столбца. У меня так же есть подозрения, что в ней много лишнего, например прокручивание экрана вверх и вниз.
 
Василий Иванович:
- Петька! Я книгу написал! 32 тома!
Петька читает: первый том  1 строка:
Василий Иванович поехал в штаб. Цок цок цок ...32 тома
Пролог: Василий Иванович приехал в штаб.

ищи такие выражения:  Range("A1:C1").Select
Range("A12:C21").Select
Range("A12:C31").Select
С это номер 3 колонки. Четвёртая колонка D
 
Добавилось нечто подобное
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x As Range, r1 As Range, r2 As Range

    If Target.Column = 1 Then
        If Target.Cells.Count = 1 Then

            Application.EnableEvents = False
            Application.ScreenUpdating = False

            Set x = Sheets(2).Columns(1).Find(Target, , , xlWhole)
            If Not x Is Nothing Then
                Set r1 = Target
                Set r2 = x
                Do
                    r2.Offset(, 1).Copy r1.Offset(, 1)
                    r2.Offset(, 2).Copy r1.Offset(, 2)
                  
                    r1.Offset(1).EntireRow.Insert
                    Set r1 = r1.Offset(1)
                    Set r2 = r2.Offset(1)
                Loop While Len(Trim(r2.Value)) = 0 And Len(Trim(r2.Offset(, 1).Value)) > 0
                r1.EntireRow.Delete
            End If
            Application.ScreenUpdating = True
            Application.EnableEvents = True
        End If
    End If
End Sub
Изменено: Krestuk - 26.03.2019 14:46:11
 
Цитата
Александр Моторин написал:
Range("A12:C21").SelectRange("A12:C31").SelectС это номер 3 колонки. Четвёртая колонка D
Нашел их все, однако результат такой же, ничего не изменилось, выгружается только 3 столбца. Может с учетом кода выложенного выше можно реализовать выгрузку 4ого?


Добавлением строки
r2.Offset(, 3).Copy r1.Offset(, 3)
в цикл do
проблема решилась полностью
Изменено: Krestuk - 26.03.2019 22:12:32
Страницы: 1
Наверх