Поиск в excel на основании другого excel и формирование нового

Есть 1 excel файл, в котором я дописываю новых клиентов. Каждое n времени приходит файл в котором информация о клиентах, там есть и чужие. Мне нужно на основании моего экселя найти клиентов в экселе который мне приходит и сформировать новый эксель файл. Возможно ли это автоматизировать с помощью vba в excel? Не могу найти информацию или готовое решение..

  1. Файл "A" в котором информация о моих клиентах
  2. Файл "find" с всеми клиентами лежит в той же папке
  3. На основании из файла "A" ищем строки с моими клиентами в файле find
  4. Добавляем в файл "C" найденные строки. (Табличка "C" считает всё сама, поэтому мне нужно будет из строки брать только некоторые ячейки)
Function GetValue(path, file, sheet, ref)
    If Right(path, 1) <> "\" Then path = path & "\"
    If Dir(path & file) = "" Then GetValue = "Файл не найден": Exit Function

    arg$ = "'" & path & "[" & file & "]" & sheet & "'!" & _
           Range(ref).Range("A1").Address(, , xlR1C1)
 
    GetValue = ExecuteExcel4Macro(arg$)
 
    If IsError(GetValue) Then GetValue = "<ошибка>"
End Function


Sub Example_GetValue()
    p = "C:\Users\AllTimeLearn\Desktop\newtest"
    f = "find.xlsx"
    s = "В целом"
    a = "D1"
    
    Value1 = GetValue(p, f, s, a)
 
    Debug.Print Value1; Immediate
End Sub


Sub get_info_other_excel(id)
 i = 0
 For Each d In Workbooks("find.xlsx").Sheets("В целом").Range("C8:C50").Cells

 i = i + 1 'Нахожу строку и должна добавить к C8, а как?
 If d.Value = id Then Debug.Print i 'Вывожу на какой итерации нашла совпадение
 If d.Value = "" Then Exit Sub 'пустая строка обозначает выход из функции
 'Debug.Print id; Immediate
 Next
End Sub

Sub Find_All_Id()
 For Each c In Worksheets("RUN").Range("B3:B210").Cells 'A2:D20
 
 If c.Value = "" Then Exit Sub
 
 get_info_other_excel (c.Value)
 'Debug.Print c.Value; Immediate
 Next

End Sub

И вот я нашла строки в файле 'find', теперь мне нужно преобразовать найденную итерацию в нужную строку в нашем случае +7 ( так как мы находим от C8). Дальше через GetValue я буду получать содержание нужных ячеек на этой строке. Но как это правильно сделать. Что бы я могла поместить полученные несколько ячеек в файл 'C'. Файл C это умная таблица я планирую её очищать вначале макроса и уже потом заполнять ячейки в строках ( не добавляя новых ).

Желаемый результат по нажатию кнопки найти данные из одной таблицы в другой таблице и занести в третью. По клику "запуск" мы идем по столбцам ид клиента и сравниваем содержимое их с таблицей "ТутИщем" с столбцом "ID Клиента". Если найдено совпадения то берем ID партнера который находится в этой таблице и ячейки из таблицы "ТутИщем": "Клиент" (столбец A), "Ид клиента" ( B ), "Доход" ( D ), "От дистрибьютора" ( E ), "Налог"( F ) и помещаем в таблицу "ЗаполняемУмнуюТаблицу". Более подробная визуализация в файле "ИсходныеДанныеТут".

Заранее спасибо за любую подсказку.

https://drive.google.com/file/d/13Mw3RRfBjBoWiEZxwnF2XYKUQrN8EKl9/view?usp=sharing


Ответы (0 шт):