Страницы: 1
RSS
Vba макрос на применение фильтра по другому диапазону
 

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


Что пробовал:
1) через функцию =ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$14;НАИМЕНЬШИЙ(ЕСЛИ($H$2=A2:A14;СТРОКА(B2:B14)-1;"");СТРОКА()-3));""), но здесь можно выбрать только по 1 критерию (цех или дата) и плюс ко всему мне нужно, чтобы не просто вводилась конкретная дата - 23.01.2017, а можно было выбирать, как в автофильтре, и по конкретным данным, и по месяцу (Январь - отображает все фамилии по Январю) в целом
2) Через макрос в файле, я фильтрую в первом листе и нажимаю кнопку, чтобы данные копировались в форму. В заголовках Цех Месяц приходится вводить вручную данные с заголовка автофильтра
3) Через макрос расширенного фильтра, взятый с вашего сайта. Ищу конкретный цех и дату, на листе2 настраиваю ссылки на поля, где я пишу. Но тут, опять же, проблема конкретного месяца и нужно, чтобы все происходило на листе2 и сразу через форму

Я думаю, может можно как-то настроить автофильтр, чтобы заголовки были на листе 2, данные на листе 1, а фильтровался список сразу на месте или может как-то это через ссылки на видимые значения можно сделать (типа заголовки на листе2 ссылаются на фильтр на листе1, а ссылки в форме на листе2 на видимые ячейки листа1 сразу отображали нужные данные (и только нужные данные по колонкам - фио и табель)

Если задание очень сложное, выложу тему в "Работе". Мне важно знать, можно ли вообще так сделать и, если что, договориться на платной основе.

Изменено: Антон95 - 20.02.2017 19:21:54
 
На втором листе в выпадающем списке цехов отображаются буквенные наименования, а в исходной таблице у цехов числовое обозначение - как тут быть?
 
Вариант (см.файл)
Кому решение нужно - тот пример и рисует.
 
Юрий М, моя ошибка, просто в главном файле - буквенное, а этот я делал как шаблон и не заметил. Можно заменить на любое и выпадающий список убрать. Добавил файл с цифровым обозначением цехов
Изменено: Антон95 - 20.02.2017 19:33:15
 
Пытливый, очень понравился ваш вариант, спасибо вам, но как быть, если год не один. В формуле это можно прописать, чтобы года учитывались или через макрос нужно что-то как-то? Просто я почти уверен есть такой очень красивый вариант, как я хочу, через VBA, а как его реализовать - хз
Изменено: Антон95 - 20.02.2017 19:35:00
 
Повторюсь, если что, готов на платной основе договориться
 
Нужно решение для двух таблиц?
Сейчас сделаем )
 
Готово.
 
Юрий М, Доброе утро, спасибо, классно работает, но такой же вопрос, как и Пытливый. В вашем макросе мы выбираем из месяцев одного года. А если года добавятся, мне нужно, например, посмотреть по цеху и месяцу 2016 года, в таблице и 2015 и 2016 и 2017 года, как здесь сделать? Идеально бы вообще было как из фильтра по месяцу выбираешь, типа такого оформления. Но это ладно, главное узнать, как с различными годами быть.
 
В примере не было дат с разными годами. Нужно будет добавить ещё один выпадающий список и переделать макрос. Или UserForm рисовать.
 
Юрий М, Добавил 2016 и 2017, сможете помочь? Больше не буду беспокоить по этой теме
Изменено: Антон95 - 21.02.2017 08:44:10
 
Юрий М, Добавил 2016 и 2017, сможете помочь? Больше не буду беспокоить по этой теме
 
Если никто не подключится, то только ближе к вечеру...
 
Юрий М, хорошо, спасибо, я в любом случае жду
 
Чуток поменял структуру и формулы.
Задаем начало периода и конец периода, выбираем цех.
(см.файл)
Кому решение нужно - тот пример и рисует.
 
Пытливый, по цеху SW почему то отображает 2 Прохора. Также на Листе2 10 ячеек, где формулы, а в таблице 12, я думал из-за этого двух последних не отображает - Николая и Виктора, но Николая то отображает (А11), а Виктора даже с копированием дальше формулы нет (но как я понял, копирование формулы вниз ничего не даст, т.к. Николай все же отображается, он стоит в А11, а формула кончается на А10. В общем почему то 2 Прохора и нет Виктора
 
Табельный номер 600 и у Прохора, и у Виктора - как так-то?! Он что, не уникальный у вас?
Кому решение нужно - тот пример и рисует.
 
Пытливый, исправил на уникальный, стал все верно отображать. То есть эта формула только уникальные ищет - понял. Спасибо огроменное! Буду теперь в суть формулы вникать. Юрий М, ваш вариант с макросом тоже очень хочу посмотреть, то есть, как и говорил, жду.
 
Цитата
Антон95 написал:
 Юрий М , ваш вариант с макросом тоже очень хочу посмотреть
Смотрите ))

Цитата
Антон95 написал:
Идеально бы вообще было как из фильтра по месяцу выбираешь, типа такого оформления.
Я уже говорил: тогда лучше делать с UserForm - будет красиво )
 
Юрий М, очень вам благодарен, думаю этого мне хватит) а юзерформ я то и не сделаю, что я сам умею в VBA писать, так это макросы на скопировать/вставить) если у вас будет лишнее время и желание, как-нибудь на досуге покажите, как делать эту юзерформ) еще раз спасибо)
 
Пытливый, добрый день. Не поможешь еще? Что нужно изменить в формуле, чтобы:
1) Если в указанном диапазоне встречается фамилия 2 и более раз, то выводить не все подряд, а только одну и в ячейке "Кол-во перспект. предлож." писать сколько раз она попала в этот диапазон
2)И учитывая дополнительный критерий, я добавил колонку, где либо одобрено - да, либо отклонено - нет. То есть если одобрено выводить, если нет - то не выводить. Нужно еще одну если перед всей функцией поставить?
Страницы: 1
Наверх