Довёл, надеюсь, до финальной версии свой "удобный автофильтр", начатый мною на дружественном форуме В прилагаемом файле приведено три варианта реализации удобного автофильтра по критерию "содержит". Разная степень автоматизации и необходимого вмешательства в программный код для изменения параметров фильтрации.
На листе Фильтр-Текстбокс АВТОМАТ - автофильтр по тексту, вводимому в текстбоксы. Фильтрация происходит "на лету" по мере ввода. Столбцы для фильтрации могут определяться как автоматически по положениям левых верхних углов текстбоксов, так и задаваться пользователем, поэтому вмешательство в код для изменения столбцов фильтрации либо не требуется, либо минимально. Можно задать столбцы фильтрации, отличные от положения текстбоксов. Для изменения столбцов фильтрации достаточно либо изменить положение текстбоксов в "Режиме констркутора", либо задать номер столбца в аргументе программы обработки. Для каждого текстбокса опционально возможно его автоматическое позиционирование относительно ячейки и подгонка его ширины-высоты, а также замена "пробела" на "звёздочку".
На листе Фильтр-Ячейка АВТОМАТ - автофильтр по тексту, вводимому в ячейки. Фильтрация происходит после выхода из ячейки. Фильтровать или нет в столбце при изменении значения ячейки определяется тем, есть в ней специальная метка - примечание с заданным в коде текстом-признаком ФИЛЬТР-ячейка Поэтому вмешиваться в код для того чтобы добавить или убрать влияющие ячейки нет необходимости. P.S. Текст-признак при желании можно изменить во второй строке кода. P.P.S. Текст чувствителен к регистру!
На листе Фильтр-Ячейка - автофильтр по тексту, вводимому в ячейки. Фильтрация происходит после выхода из ячейки. Ячейки, включающие фильтр, задаются непосредственно в коде. Столбцы, в которых производится фильтрация, совпадают со столбцами ячеек.
Для каждого из вариантов реализации весь исполняемый код VBA сосредоточен в модуле каждого Листа. Ссылки на имя и номер Листа в коде отсутствуют. Поэтому любой Лист можно свободно переименовывать, переносить, копировать в другие книги без нарушения функциональности
Довёл, надеюсь, до финальной версии свой "удобный автофильтр", начатый мною на дружественном форуме В прилагаемом файле приведено три варианта реализации удобного автофильтра по критерию "содержит". Разная степень автоматизации и необходимого вмешательства в программный код для изменения параметров фильтрации.
На листе Фильтр-Текстбокс АВТОМАТ - автофильтр по тексту, вводимому в текстбоксы. Фильтрация происходит "на лету" по мере ввода. Столбцы для фильтрации могут определяться как автоматически по положениям левых верхних углов текстбоксов, так и задаваться пользователем, поэтому вмешательство в код для изменения столбцов фильтрации либо не требуется, либо минимально. Можно задать столбцы фильтрации, отличные от положения текстбоксов. Для изменения столбцов фильтрации достаточно либо изменить положение текстбоксов в "Режиме констркутора", либо задать номер столбца в аргументе программы обработки. Для каждого текстбокса опционально возможно его автоматическое позиционирование относительно ячейки и подгонка его ширины-высоты, а также замена "пробела" на "звёздочку".
На листе Фильтр-Ячейка АВТОМАТ - автофильтр по тексту, вводимому в ячейки. Фильтрация происходит после выхода из ячейки. Фильтровать или нет в столбце при изменении значения ячейки определяется тем, есть в ней специальная метка - примечание с заданным в коде текстом-признаком ФИЛЬТР-ячейка Поэтому вмешиваться в код для того чтобы добавить или убрать влияющие ячейки нет необходимости. P.S. Текст-признак при желании можно изменить во второй строке кода. P.P.S. Текст чувствителен к регистру!
На листе Фильтр-Ячейка - автофильтр по тексту, вводимому в ячейки. Фильтрация происходит после выхода из ячейки. Ячейки, включающие фильтр, задаются непосредственно в коде. Столбцы, в которых производится фильтрация, совпадают со столбцами ячеек.
Для каждого из вариантов реализации весь исполняемый код VBA сосредоточен в модуле каждого Листа. Ссылки на имя и номер Листа в коде отсутствуют. Поэтому любой Лист можно свободно переименовывать, переносить, копировать в другие книги без нарушения функциональности
Alex_ST, Добрый день, долго искал такой автофильтр и спасибо Вам нашел! Большая просьба расскажите подробнее как такой автофильтр помещать в мои уже созданные книги? с Макросами не мягко сказано не силен, все делаю с помощью формул. поэтому чем подробнее тем легче будет мне понять. Заранее большое спасибо.
Alex_ST, Добрый день, долго искал такой автофильтр и спасибо Вам нашел! Большая просьба расскажите подробнее как такой автофильтр помещать в мои уже созданные книги? с Макросами не мягко сказано не силен, все делаю с помощью формул. поэтому чем подробнее тем легче будет мне понять. Заранее большое спасибо.che1975
che1975, , а как вы себе представляете фильтрацию по условию "содержит" для чисел? Для числовых данных условия совсем другие условия отбора (больше, меньше, равно) Тут нужно позаписывать макрорекордером установку фильтров и немного переделать мой макрос
che1975, , а как вы себе представляете фильтрацию по условию "содержит" для чисел? Для числовых данных условия совсем другие условия отбора (больше, меньше, равно) Тут нужно позаписывать макрорекордером установку фильтров и немного переделать мой макросAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Понедельник, 29.08.2011, 21:52
che1975, подробнее чем в примере объяснять уже некуда Там же и на листах пояснения, и комментарии в макросах... Куда уж подробнее? А если вам нужно с нуля VBA изучать, так это уж к теме совсем не относится Но если всё-таки будете использовать, то попробуйте "текстбокс-автомат". Там, кажется, я сделал так, чтобы автоматически настраивалось на фильтрацию в том столбце, где установлен текстбокс. Просто сотрите мою таблицу-пример, добавьте свою. А потом в режиме конструктора передвиньте текстбоксы на нужные вам места.
che1975, подробнее чем в примере объяснять уже некуда Там же и на листах пояснения, и комментарии в макросах... Куда уж подробнее? А если вам нужно с нуля VBA изучать, так это уж к теме совсем не относится Но если всё-таки будете использовать, то попробуйте "текстбокс-автомат". Там, кажется, я сделал так, чтобы автоматически настраивалось на фильтрацию в том столбце, где установлен текстбокс. Просто сотрите мою таблицу-пример, добавьте свою. А потом в режиме конструктора передвиньте текстбоксы на нужные вам места.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Вторник, 30.08.2011, 09:52
Доброго времени суток Ув. форумчане. Alex_ST, подскажите пожалуйста, можно ли Фильтр-Текстбокс АВТОМАТ применить к таблице которая вставляется через: Вставка---Таблица (офис 2007)? Если можно, покажите пожалуйста кусок сода который нужно изменить (поменять) Заранее Спасибо С Ув. Станислав
Доброго времени суток Ув. форумчане. Alex_ST, подскажите пожалуйста, можно ли Фильтр-Текстбокс АВТОМАТ применить к таблице которая вставляется через: Вставка---Таблица (офис 2007)? Если можно, покажите пожалуйста кусок сода который нужно изменить (поменять) Заранее Спасибо С Ув. СтаниславStaniiislav
Единственный способ стать умнее, играть с более умным соперником
Staniiislav, у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать). Дома поэтому посмотреть что там не работает не смогу. Наверное (если не забуду, конечно) посмотрю в понедельник. Просто не понимаю, что там может не работать. Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?
К стати, а если преобразовать список в диапазон по ПКМ, то работает?
Staniiislav, у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать). Дома поэтому посмотреть что там не работает не смогу. Наверное (если не забуду, конечно) посмотрю в понедельник. Просто не понимаю, что там может не работать. Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?
К стати, а если преобразовать список в диапазон по ПКМ, то работает?Alex_ST
Staniiislav, у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать). Дома поэтому посмотреть что там не работает не смогу. Наверное (если не забуду, конечно) посмотрю в понедельник. Просто не понимаю, что там может не работать. Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?
К стати, а если преобразовать список в диапазон по ПКМ, то работает?
Списибо что быстро ответили, пример на Вашем примере приложил ))) Спасибо
Quote (Alex_ST)
Staniiislav, у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать). Дома поэтому посмотреть что там не работает не смогу. Наверное (если не забуду, конечно) посмотрю в понедельник. Просто не понимаю, что там может не работать. Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?
К стати, а если преобразовать список в диапазон по ПКМ, то работает?
Списибо что быстро ответили, пример на Вашем примере приложил ))) СпасибоStaniiislav
Ну, как я и предполагал... 1. У Вас там не автофильтр, а "список" (в 2007/2010 это называется почему-то "таблица"). Надо было по ПКМ выбрать пункт "Таблица..."-"Преобразовать в диапазон" 2. А Вы, к стати, не обратили внимания, что значки фильтров в Вашей таблице расположены те там, где заголовки и текстбоксы, а строкой ниже - уже на области данных? Естественно, макрос не находил фильтров там, где текстбоксы и "ругался", что фильтр не включен.
И ещё: у Вас в книге гора "левых и кривых" имён диапазонов. Они, конечно, не мешают работе фильтра, но вызывают "ругань" Excel'я при сохранении файла. Я эти имена убил на всякий случай. Так что если они нужны, то восстановите сами.
Ну, как я и предполагал... 1. У Вас там не автофильтр, а "список" (в 2007/2010 это называется почему-то "таблица"). Надо было по ПКМ выбрать пункт "Таблица..."-"Преобразовать в диапазон" 2. А Вы, к стати, не обратили внимания, что значки фильтров в Вашей таблице расположены те там, где заголовки и текстбоксы, а строкой ниже - уже на области данных? Естественно, макрос не находил фильтров там, где текстбоксы и "ругался", что фильтр не включен.
И ещё: у Вас в книге гора "левых и кривых" имён диапазонов. Они, конечно, не мешают работе фильтра, но вызывают "ругань" Excel'я при сохранении файла. Я эти имена убил на всякий случай. Так что если они нужны, то восстановите сами.Alex_ST
Alex_ST, Всем добрый день. Подскажите возможно ли изменить данный Автофильтр так, чтобы вводить через пробел(или запятую,например) несколько значений по которым будет фильтроваться столбец(таблица)? Либо возможные пути для решения такой задачи? Спасибо.
Alex_ST, Всем добрый день. Подскажите возможно ли изменить данный Автофильтр так, чтобы вводить через пробел(или запятую,например) несколько значений по которым будет фильтроваться столбец(таблица)? Либо возможные пути для решения такой задачи? Спасибо.airwaves18244
А что значит "несколько значений"? По любому из слов - НЕТ По всем словам, но в другом порядке - НЕТ По всем словам в том же порядке с любым количеством символов между ними - ДА
Поймите, все описанные процедуры просто по-разному обеспечивают доступ к одной и той же - стандартному автофильтру. Если стандартный автофильтр может то, что Вы хотите, то и процедуры смогут.
А что значит "несколько значений"? По любому из слов - НЕТ По всем словам, но в другом порядке - НЕТ По всем словам в том же порядке с любым количеством символов между ними - ДА
Поймите, все описанные процедуры просто по-разному обеспечивают доступ к одной и той же - стандартному автофильтру. Если стандартный автофильтр может то, что Вы хотите, то и процедуры смогут.Alex_ST
Ну, батенька, ведь это уже совсем другая тема, т.к. стандартный автофильтр не позволяет фильтровать более чем по двум условиям с функцией между ними либо И, либо ИЛИ, а Вы хотите больше. Сделать-то это, может быть и можно, но не в рамках этой разработки.
Ну, батенька, ведь это уже совсем другая тема, т.к. стандартный автофильтр не позволяет фильтровать более чем по двум условиям с функцией между ними либо И, либо ИЛИ, а Вы хотите больше. Сделать-то это, может быть и можно, но не в рамках этой разработки.Alex_ST