Для любой таблицы любого листа любой книги: Из любой ячейки вызвать форму ввода, ввести две последовательности символов, выбрать оператор И/ИЛИ, нажать ОК - пусть макрос сам применит фильтр к столбцу выделенной ячейки с два условиями "содержит" из введённых в форму; если заполнено 1 условие, то фильтровать "содержит" по этому условию. Этот макрос будет заменять последовательность действий: Данные-Фильтр-Раскрыть фильтр-Содержит...-Ввести первое условие-Выбрать оператор-открыть список второго условия-выбрать "содержит"-Ввести второе условие. Ок.
Заменить 8 медленных сложных телодвижений на 5 простых и быстрых!
Пожалуйста, поделитесь макросом.
Надеюсь это уже придумали.
Для любой таблицы любого листа любой книги: Из любой ячейки вызвать форму ввода, ввести две последовательности символов, выбрать оператор И/ИЛИ, нажать ОК - пусть макрос сам применит фильтр к столбцу выделенной ячейки с два условиями "содержит" из введённых в форму; если заполнено 1 условие, то фильтровать "содержит" по этому условию. Этот макрос будет заменять последовательность действий: Данные-Фильтр-Раскрыть фильтр-Содержит...-Ввести первое условие-Выбрать оператор-открыть список второго условия-выбрать "содержит"-Ввести второе условие. Ок.
Заменить 8 медленных сложных телодвижений на 5 простых и быстрых!
[offtop]Макрос такой не помешает. Наверняка напишут (вроде несложно) или подскажут. Но вот чисто методически - если в расчетном или информационном модуле постоянно надо делать какие-то частные, рутинные, стандартные операции, типа описанной, то замена 8 кликов на 5 - это весьма паллиативное решение. Мне кажется (сорри), надо присмотреться к структуре данных и интерфейсу, ведь Excel и предназначен для максимально полного исключения рутины[/offtop]
[offtop]Макрос такой не помешает. Наверняка напишут (вроде несложно) или подскажут. Но вот чисто методически - если в расчетном или информационном модуле постоянно надо делать какие-то частные, рутинные, стандартные операции, типа описанной, то замена 8 кликов на 5 - это весьма паллиативное решение. Мне кажется (сорри), надо присмотреться к структуре данных и интерфейсу, ведь Excel и предназначен для максимально полного исключения рутины[/offtop]abtextime
Сообщение отредактировал abtextime - Четверг, 19.05.2016, 14:53
abtextime, не кликов - телодвижений - клики, выцеливание мышой, печать на клаве ... ну Вы в курсе! укоротил до четырёх - нажимать ОК лишнее, пусть макрос отработает при выборе оператора. Взять координаты столбца Создать форму: два поля для ввода, две кнопки опрераторов И и ИЛИ при выборе оператора, проверить состояние фильтра, если нет включить
[vba]
Код
If ActiveSheet.AutoFilterMode = False Then ActiveSheet.Range(ActiveCell.Address).AutoFilter End If
Dim r As Range Set r = ActiveSheet.AutoFilter.Range
Dim d1 As String 'Первый критерий фильтра d1 = "*" & ActiveSheet.Range("b1").Value & "*"
Dim d2 As String 'Второй критерий фильтра d2 = "*" & ActiveSheet.Range("b2").Value & "*"
abtextime, не кликов - телодвижений - клики, выцеливание мышой, печать на клаве ... ну Вы в курсе! укоротил до четырёх - нажимать ОК лишнее, пусть макрос отработает при выборе оператора. Взять координаты столбца Создать форму: два поля для ввода, две кнопки опрераторов И и ИЛИ при выборе оператора, проверить состояние фильтра, если нет включить
[vba]
Код
If ActiveSheet.AutoFilterMode = False Then ActiveSheet.Range(ActiveCell.Address).AutoFilter End If
Dim r As Range Set r = ActiveSheet.AutoFilter.Range
Dim d1 As String 'Первый критерий фильтра d1 = "*" & ActiveSheet.Range("b1").Value & "*"
Dim d2 As String 'Второй критерий фильтра d2 = "*" & ActiveSheet.Range("b2").Value & "*"