Страницы: 1
RSS
сложный фильтр vba с копированием массива, фильтр по одной колонки зная значение в другой
 
добрый вечер форумчане!
я новичок в VBA и поэтому прошу не судите строго.
кто может подсказать как двигаться дальше, заранее благодарен

есть два листа одной книги , на первом листе поиск плюс таблица вывода информации, на втором - база данных.
нужно написать макрос где поиск находил результат на листе 2 столбца B, и фильтровал эту таблицу по значению столбца А того же ряда, скопировал результат  и вставил на листе 1.


получается найти значение столбца B (например B3) с помощью .Find, но как осуществить фильтр по столбцу А3 непонятно.
 
А это смотрели https://www.planetaexcel.ru/techniques/1/38/
 
это немного не то, марки и модели авто я поставил для упрощение.
на самом деле этот должен быть прайс по запчастям, а поиск должен выводить всю группу заменителей (аналогов), де в столбце A должна быть группа заменителей (каждая группа имеет свой номер), a в столбце B номер запчасти.
представьте что в одной группе аналогов есть запчасти разных брендов, забиваем в поиске один из брендов, а он выводит всю группу (все чем можно заменить).

могу попробовать переделать пример если будет понятней
 
Модель Lancer вы ищете в столбце В листа 2.
Зачем тогда в коде цикл по всем листам?
Нашли модель, тогда в этой же строке в столбце А будет марка.
Сделать автофильтр по марке и перенести видимые строки на лист 1
 
кнопка цитирования не для ответа [МОДЕРАТОР]

логика понятна,  при помощи какой функции можно определить значение в ячейке A?
зная модель, как 'определить' марку ?
 
Цитата
какой функции можно определить значение в ячейке A?
У вас в коде есть поиск значения модели
Код
Set rFound = .Find(What:=strName, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= False)

Если нашли rFound - это объект типа Range, то марка будет в Cells(rFound.Row, "A")
или через Offset
 
спасибо Kuzmich за подсказку, если кому то будет полезно, получилось сделать так:

.AutoFilter Field:=1, Criteria1:=ws.Cells(rFound.Row, "A")

протестирую все и отпишусь.
Страницы: 1
Наверх