Страницы: 1
RSS
Подтянуть данные в таблицу в зависимости от выбранного счета.
 
Добрый вечер.
Имеется лист"Реестр" на котором вносятся выписанные счета.
На листе"Отгрузка" вносятся данные по отгрузке. Активируем свободную ячейку в столбце D Нажимаем на кнопку и в поисковике выбираем необходимые данные и переносим на лист, заполняем даты. Это все работает.
Но если в счете несколько наименований,то при  переносе в ячейке отображается только первый товар.Бывает такое что клиент выписал несколько наименований ,а отгружает вторую и третью позии .
Как исправить формулу или прописать макрос для корректного выбора и отображения необходимого товара согласно счета.  
 
Попробуйте эту функцию. В ней Target - это строка идентификатора из таблицы на листе 2. Она сравнивает и выбирает данные на листе РЕЕСТР и вставляет в нужную ячейку
Код
Function Target(SourceData As Range)
Dim wshSource As Worksheet, i, StrSource As String
Set wshSource = ThisWorkbook.Worksheets("Реестр")
For i = 5 To wshSource.UsedRange.Rows.Count
If StrComp(SourceData, wshSource.Cells(i, 1)) = 0 Then
StrSource = StrSource & "," & wshSource.Cells(i, 5)
End If
Next i
StrSource = Right(StrSource, Len(StrSource) - 1)
Target = StrSource
End Function
[CODE][/CODE]
Изменено: artemkau88 - 27.09.2020 19:28:32
 
artemkau88,  спасибо за ответ-это функция определенная пользователем . А куда ее прикрепить в моем примере?
 
В ячейку из столбца Товары листа Отгрузка.
Для корректного отображения идентификатора в листе РЕЕСТР можно применить пользовательскую функцию Идентификатор (см ниже).
После этого встаете на ячейку Товары  листа Отгрузка и вставляете функцию target

функция Идентификатор:

Код
Function Идентификатор(Name As Range, Number As Range, Dt As Range) As String
Идентификатор = Name & " №" & Number & " от " & Dt

End Function
[CODE][/CODE]
Изменено: artemkau88 - 27.09.2020 19:49:33
 
Идентификатор вставил ,а вот функцию Target  не знаю как применить. Помогите.
 
просто пишете в столбце товар на листе отгрузка = target(SourceData As Range), где SourceData идентификатор из диапазона D4:D12.
Например в ячейке D4 написано "Бета, ООО №5 от 18.09.2020". Тогда ячейка В4 будет выглядеть так = Target(D4). И в ней будет записано наименование товара с листа РЕЕСТР
Изменено: artemkau88 - 27.09.2020 20:22:23
 
Получилось.Но эти две позиции надо ,что бы заполнялись отдельно.А сечас заполняется в одну строку
 
Приложите, пожалуйста, пример, как должен отобразиться результат.
 
Добрый день artemkau88,. Приложил файл он  также у вас есть в #6.  
 
Думаю, надо добавить в сравнение ещё и условие по отгрузке
 
А где это прописать нужно ?
 
Думаю, в качестве условия нужно добавить количество фактически отгруженных товаров, которые одинаковы и в первом и втором листе. В формуле target это еще один диапазон условий USL. Посмотрите файл во вложении
 
Я бы не использовал слово Target как имя функции. на всякий случай...
И ещё - не всегда UsedRange.Rows.Count будет совпадать с номером последней заполненной строки! Файл правда не смотрел, тут может оно и совпадает...
Страницы: 1
Наверх