Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удобный автофильтр - Мир MS Excel

Старая форма входа
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: _Boroda_, китин  
Удобный автофильтр
Alex_ST Дата: Воскресенье, 20.02.2011, 19:39 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Довёл, надеюсь, до финальной версии свой "удобный автофильтр", начатый мною на дружественном форуме
В прилагаемом файле приведено три варианта реализации удобного автофильтра по критерию "содержит". Разная степень автоматизации и необходимого вмешательства в программный код для изменения параметров фильтрации.

На листе Фильтр-Текстбокс АВТОМАТ - автофильтр по тексту, вводимому в текстбоксы.
Фильтрация происходит "на лету" по мере ввода.
Столбцы для фильтрации могут определяться как автоматически по положениям левых верхних углов текстбоксов, так и задаваться пользователем, поэтому вмешательство в код для изменения столбцов фильтрации либо не требуется, либо минимально. Можно задать столбцы фильтрации, отличные от положения текстбоксов. Для изменения столбцов фильтрации достаточно либо изменить положение текстбоксов в "Режиме констркутора", либо задать номер столбца в аргументе программы обработки.
Для каждого текстбокса опционально возможно его автоматическое позиционирование относительно ячейки и подгонка его ширины-высоты, а также замена "пробела" на "звёздочку".

На листе Фильтр-Ячейка АВТОМАТ - автофильтр по тексту, вводимому в ячейки.
Фильтрация происходит после выхода из ячейки.
Фильтровать или нет в столбце при изменении значения ячейки определяется тем, есть в ней специальная метка - примечание с заданным в коде текстом-признаком ФИЛЬТР-ячейка
Поэтому вмешиваться в код для того чтобы добавить или убрать влияющие ячейки нет необходимости.
P.S. Текст-признак при желании можно изменить во второй строке кода.
P.P.S. Текст чувствителен к регистру!

На листе Фильтр-Ячейка - автофильтр по тексту, вводимому в ячейки. Фильтрация происходит после выхода из ячейки.
Ячейки, включающие фильтр, задаются непосредственно в коде. Столбцы, в которых производится фильтрация, совпадают со столбцами ячеек.

Для каждого из вариантов реализации весь исполняемый код VBA сосредоточен в модуле каждого Листа.
Ссылки на имя и номер Листа в коде отсутствуют. Поэтому любой Лист можно свободно переименовывать, переносить, копировать в другие книги без нарушения функциональности

К сообщению приложен файл: __v6.4.xls.zip (50.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Воскресенье, 20.02.2011, 22:47
 
Ответить
СообщениеДовёл, надеюсь, до финальной версии свой "удобный автофильтр", начатый мною на дружественном форуме
В прилагаемом файле приведено три варианта реализации удобного автофильтра по критерию "содержит". Разная степень автоматизации и необходимого вмешательства в программный код для изменения параметров фильтрации.

На листе Фильтр-Текстбокс АВТОМАТ - автофильтр по тексту, вводимому в текстбоксы.
Фильтрация происходит "на лету" по мере ввода.
Столбцы для фильтрации могут определяться как автоматически по положениям левых верхних углов текстбоксов, так и задаваться пользователем, поэтому вмешательство в код для изменения столбцов фильтрации либо не требуется, либо минимально. Можно задать столбцы фильтрации, отличные от положения текстбоксов. Для изменения столбцов фильтрации достаточно либо изменить положение текстбоксов в "Режиме констркутора", либо задать номер столбца в аргументе программы обработки.
Для каждого текстбокса опционально возможно его автоматическое позиционирование относительно ячейки и подгонка его ширины-высоты, а также замена "пробела" на "звёздочку".

На листе Фильтр-Ячейка АВТОМАТ - автофильтр по тексту, вводимому в ячейки.
Фильтрация происходит после выхода из ячейки.
Фильтровать или нет в столбце при изменении значения ячейки определяется тем, есть в ней специальная метка - примечание с заданным в коде текстом-признаком ФИЛЬТР-ячейка
Поэтому вмешиваться в код для того чтобы добавить или убрать влияющие ячейки нет необходимости.
P.S. Текст-признак при желании можно изменить во второй строке кода.
P.P.S. Текст чувствителен к регистру!

На листе Фильтр-Ячейка - автофильтр по тексту, вводимому в ячейки. Фильтрация происходит после выхода из ячейки.
Ячейки, включающие фильтр, задаются непосредственно в коде. Столбцы, в которых производится фильтрация, совпадают со столбцами ячеек.

Для каждого из вариантов реализации весь исполняемый код VBA сосредоточен в модуле каждого Листа.
Ссылки на имя и номер Листа в коде отсутствуют. Поэтому любой Лист можно свободно переименовывать, переносить, копировать в другие книги без нарушения функциональности


Автор - Alex_ST
Дата добавления - 20.02.2011 в 19:39
che1975 Дата: Понедельник, 29.08.2011, 17:00 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Alex_ST,
Добрый день, долго искал такой автофильтр и спасибо Вам нашел! Большая просьба расскажите подробнее как такой автофильтр помещать в мои уже созданные книги? с Макросами не мягко сказано не силен, все делаю с помощью формул. поэтому чем подробнее тем легче будет мне понять.
Заранее большое спасибо.
 
Ответить
СообщениеAlex_ST,
Добрый день, долго искал такой автофильтр и спасибо Вам нашел! Большая просьба расскажите подробнее как такой автофильтр помещать в мои уже созданные книги? с Макросами не мягко сказано не силен, все делаю с помощью формул. поэтому чем подробнее тем легче будет мне понять.
Заранее большое спасибо.

Автор - che1975
Дата добавления - 29.08.2011 в 17:00
che1975 Дата: Понедельник, 29.08.2011, 18:07 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Данный автофильтр, фильтрует только текстовые значения? Возможно ли что бы фильтровал и числа?
 
Ответить
СообщениеДанный автофильтр, фильтрует только текстовые значения? Возможно ли что бы фильтровал и числа?

Автор - che1975
Дата добавления - 29.08.2011 в 18:07
Alex_ST Дата: Понедельник, 29.08.2011, 21:51 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
che1975, ,
а как вы себе представляете фильтрацию по условию "содержит" для чисел?
Для числовых данных условия совсем другие условия отбора (больше, меньше, равно)
Тут нужно позаписывать макрорекордером установку фильтров и немного переделать мой макрос



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 29.08.2011, 21:52
 
Ответить
Сообщениеche1975, ,
а как вы себе представляете фильтрацию по условию "содержит" для чисел?
Для числовых данных условия совсем другие условия отбора (больше, меньше, равно)
Тут нужно позаписывать макрорекордером установку фильтров и немного переделать мой макрос

Автор - Alex_ST
Дата добавления - 29.08.2011 в 21:51
Alex_ST Дата: Понедельник, 29.08.2011, 21:58 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
che1975,
подробнее чем в примере объяснять уже некуда
Там же и на листах пояснения, и комментарии в макросах...
Куда уж подробнее?
А если вам нужно с нуля VBA изучать, так это уж к теме совсем не относится
Но если всё-таки будете использовать, то попробуйте "текстбокс-автомат". Там, кажется, я сделал так, чтобы автоматически настраивалось на фильтрацию в том столбце, где установлен текстбокс.
Просто сотрите мою таблицу-пример, добавьте свою. А потом в режиме конструктора передвиньте текстбоксы на нужные вам места.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 30.08.2011, 09:52
 
Ответить
Сообщениеche1975,
подробнее чем в примере объяснять уже некуда
Там же и на листах пояснения, и комментарии в макросах...
Куда уж подробнее?
А если вам нужно с нуля VBA изучать, так это уж к теме совсем не относится
Но если всё-таки будете использовать, то попробуйте "текстбокс-автомат". Там, кажется, я сделал так, чтобы автоматически настраивалось на фильтрацию в том столбце, где установлен текстбокс.
Просто сотрите мою таблицу-пример, добавьте свою. А потом в режиме конструктора передвиньте текстбоксы на нужные вам места.

Автор - Alex_ST
Дата добавления - 29.08.2011 в 21:58
Гость Дата: Вторник, 30.08.2011, 09:33 | Сообщение № 6
Группа: Гости
Большое спасибо, разобрался все получилось.
 
Ответить
СообщениеБольшое спасибо, разобрался все получилось.

Автор - Гость
Дата добавления - 30.08.2011 в 09:33
Staniiislav Дата: Пятница, 13.07.2012, 18:06 | Сообщение № 7
Группа: Проверенные
Ранг: Новичок
Сообщений: 28
Репутация: 3 ±
Замечаний: 0% ±

2010
Доброго времени суток Ув. форумчане.
Alex_ST, подскажите пожалуйста, можно ли Фильтр-Текстбокс АВТОМАТ применить к таблице которая вставляется через:
Вставка---Таблица (офис 2007)?
Если можно, покажите пожалуйста кусок сода который нужно изменить (поменять)
Заранее Спасибо
С Ув. Станислав


Единственный способ стать умнее, играть с более умным соперником
 
Ответить
СообщениеДоброго времени суток Ув. форумчане.
Alex_ST, подскажите пожалуйста, можно ли Фильтр-Текстбокс АВТОМАТ применить к таблице которая вставляется через:
Вставка---Таблица (офис 2007)?
Если можно, покажите пожалуйста кусок сода который нужно изменить (поменять)
Заранее Спасибо
С Ув. Станислав

Автор - Staniiislav
Дата добавления - 13.07.2012 в 18:06
Alex_ST Дата: Пятница, 13.07.2012, 20:54 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Staniiislav,
у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать).
Дома поэтому посмотреть что там не работает не смогу.
Наверное (если не забуду, конечно) посмотрю в понедельник.
Просто не понимаю, что там может не работать.
Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?

К стати, а если преобразовать список в диапазон по ПКМ, то работает?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеStaniiislav,
у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать).
Дома поэтому посмотреть что там не работает не смогу.
Наверное (если не забуду, конечно) посмотрю в понедельник.
Просто не понимаю, что там может не работать.
Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?

К стати, а если преобразовать список в диапазон по ПКМ, то работает?

Автор - Alex_ST
Дата добавления - 13.07.2012 в 20:54
Staniiislav Дата: Суббота, 14.07.2012, 13:46 | Сообщение № 9
Группа: Проверенные
Ранг: Новичок
Сообщений: 28
Репутация: 3 ±
Замечаний: 0% ±

2010
Quote (Alex_ST)
Staniiislav,
у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать).
Дома поэтому посмотреть что там не работает не смогу.
Наверное (если не забуду, конечно) посмотрю в понедельник.
Просто не понимаю, что там может не работать.
Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?

К стати, а если преобразовать список в диапазон по ПКМ, то работает?


Списибо что быстро ответили, пример на Вашем примере приложил )))
Спасибо
К сообщению приложен файл: __v6.4-_-.rar (45.3 Kb)


Единственный способ стать умнее, играть с более умным соперником

Сообщение отредактировал Staniiislav - Суббота, 14.07.2012, 13:47
 
Ответить
Сообщение
Quote (Alex_ST)
Staniiislav,
у меня офис-2010 только на рабочем компе (не нравтися он мне жутко, но на работе приходится иногда юзать).
Дома поэтому посмотреть что там не работает не смогу.
Наверное (если не забуду, конечно) посмотрю в понедельник.
Просто не понимаю, что там может не работать.
Может, пример таблицы, в которой не работает, выложите чтобы я зря не извращался по разному вставляя таблицу?

К стати, а если преобразовать список в диапазон по ПКМ, то работает?


Списибо что быстро ответили, пример на Вашем примере приложил )))
Спасибо

Автор - Staniiislav
Дата добавления - 14.07.2012 в 13:46
Alex_ST Дата: Понедельник, 16.07.2012, 09:06 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, как я и предполагал...
1. У Вас там не автофильтр, а "список" (в 2007/2010 это называется почему-то "таблица").
Надо было по ПКМ выбрать пункт "Таблица..."-"Преобразовать в диапазон"
2. А Вы, к стати, не обратили внимания, что значки фильтров в Вашей таблице расположены те там, где заголовки и текстбоксы, а строкой ниже - уже на области данных?
Естественно, макрос не находил фильтров там, где текстбоксы и "ругался", что фильтр не включен.

И ещё: у Вас в книге гора "левых и кривых" имён диапазонов. Они, конечно, не мешают работе фильтра, но вызывают "ругань" Excel'я при сохранении файла.
Я эти имена убил на всякий случай. Так что если они нужны, то восстановите сами.
К сообщению приложен файл: __v6.4-_-.xlsm (54.1 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 16.07.2012, 09:09
 
Ответить
СообщениеНу, как я и предполагал...
1. У Вас там не автофильтр, а "список" (в 2007/2010 это называется почему-то "таблица").
Надо было по ПКМ выбрать пункт "Таблица..."-"Преобразовать в диапазон"
2. А Вы, к стати, не обратили внимания, что значки фильтров в Вашей таблице расположены те там, где заголовки и текстбоксы, а строкой ниже - уже на области данных?
Естественно, макрос не находил фильтров там, где текстбоксы и "ругался", что фильтр не включен.

И ещё: у Вас в книге гора "левых и кривых" имён диапазонов. Они, конечно, не мешают работе фильтра, но вызывают "ругань" Excel'я при сохранении файла.
Я эти имена убил на всякий случай. Так что если они нужны, то восстановите сами.

Автор - Alex_ST
Дата добавления - 16.07.2012 в 09:06
Staniiislav Дата: Понедельник, 16.07.2012, 09:55 | Сообщение № 11
Группа: Проверенные
Ранг: Новичок
Сообщений: 28
Репутация: 3 ±
Замечаний: 0% ±

2010
Спасибо за быстрый ответ
Quote (Alex_ST)
ПКМ


это что такое?

Quote (Alex_ST)
И ещё: у Вас в книге гора "левых и кривых" имён диапазонов


вы имели в виду в диспетчере имен?

Спасибо


Единственный способ стать умнее, играть с более умным соперником
 
Ответить
СообщениеСпасибо за быстрый ответ
Quote (Alex_ST)
ПКМ


это что такое?

Quote (Alex_ST)
И ещё: у Вас в книге гора "левых и кривых" имён диапазонов


вы имели в виду в диспетчере имен?

Спасибо

Автор - Staniiislav
Дата добавления - 16.07.2012 в 09:55
Staniiislav Дата: Понедельник, 16.07.2012, 10:12 | Сообщение № 12
Группа: Проверенные
Ранг: Новичок
Сообщений: 28
Репутация: 3 ±
Замечаний: 0% ±

2010
по-чучуть начал въезжать, а со списком такие операции можно делать?


Единственный способ стать умнее, играть с более умным соперником

Сообщение отредактировал Staniiislav - Понедельник, 16.07.2012, 10:12
 
Ответить
Сообщениепо-чучуть начал въезжать, а со списком такие операции можно делать?

Автор - Staniiislav
Дата добавления - 16.07.2012 в 10:12
Alex_ST Дата: Понедельник, 16.07.2012, 10:37 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
ПКМ - Правая Кнопка Мыши
Списками не пользуюсь. Поэтому не знаю. Но там в коде про списки "по просьбам зрителей" вводил :[vba]
Code
        .Select   ' выбираем ячейку под текстбоксом (чтобы появились значки фильтров, если используется не автофильтр, а список)
[/vba]Вроде, потом народ не жаловался.
Главное список сделать корректно так чтобы заголовки попали куда нужно, а не в область данных.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеПКМ - Правая Кнопка Мыши
Списками не пользуюсь. Поэтому не знаю. Но там в коде про списки "по просьбам зрителей" вводил :[vba]
Code
        .Select   ' выбираем ячейку под текстбоксом (чтобы появились значки фильтров, если используется не автофильтр, а список)
[/vba]Вроде, потом народ не жаловался.
Главное список сделать корректно так чтобы заголовки попали куда нужно, а не в область данных.

Автор - Alex_ST
Дата добавления - 16.07.2012 в 10:37
Staniiislav Дата: Вторник, 17.07.2012, 12:24 | Сообщение № 14
Группа: Проверенные
Ранг: Новичок
Сообщений: 28
Репутация: 3 ±
Замечаний: 0% ±

2010
Спасибо Вам, буду пробывать и изучать дальше!


Единственный способ стать умнее, играть с более умным соперником
 
Ответить
СообщениеСпасибо Вам, буду пробывать и изучать дальше!

Автор - Staniiislav
Дата добавления - 17.07.2012 в 12:24
prokikol Дата: Вторник, 18.12.2012, 22:23 | Сообщение № 15
Группа: Гости
Спасибо за автофильтр!
Реально нужно и удобно при анализе прайсов!
 
Ответить
СообщениеСпасибо за автофильтр!
Реально нужно и удобно при анализе прайсов!

Автор - prokikol
Дата добавления - 18.12.2012 в 22:23
airwaves18244 Дата: Четверг, 17.01.2013, 12:43 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 20% ±

Alex_ST,
Всем добрый день.
Подскажите возможно ли изменить данный Автофильтр так, чтобы вводить через пробел(или запятую,например) несколько значений по которым будет фильтроваться столбец(таблица)?
Либо возможные пути для решения такой задачи?
Спасибо.
 
Ответить
СообщениеAlex_ST,
Всем добрый день.
Подскажите возможно ли изменить данный Автофильтр так, чтобы вводить через пробел(или запятую,например) несколько значений по которым будет фильтроваться столбец(таблица)?
Либо возможные пути для решения такой задачи?
Спасибо.

Автор - airwaves18244
Дата добавления - 17.01.2013 в 12:43
Alex_ST Дата: Четверг, 17.01.2013, 13:32 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
А что значит "несколько значений"?
По любому из слов - НЕТ
По всем словам, но в другом порядке - НЕТ
По всем словам в том же порядке с любым количеством символов между ними - ДА

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



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА что значит "несколько значений"?
По любому из слов - НЕТ
По всем словам, но в другом порядке - НЕТ
По всем словам в том же порядке с любым количеством символов между ними - ДА

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

Автор - Alex_ST
Дата добавления - 17.01.2013 в 13:32
airwaves18244 Дата: Четверг, 17.01.2013, 14:01 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 20% ±

Alex_ST, "несколько значений" - фильтрация столбца артикулов по нескольким артикулам 369623_234567_675391



По сути это будет фильтр столбца по "равно 369623" ИЛИ "равно 234567" ИЛИ "равно 675391"

А как эту конструкцию прикрутить с Текстбоксу? если возможно вообще
К сообщению приложен файл: 3650152.jpg (37.8 Kb)


Сообщение отредактировал airwaves18244 - Четверг, 17.01.2013, 14:20
 
Ответить
СообщениеAlex_ST, "несколько значений" - фильтрация столбца артикулов по нескольким артикулам 369623_234567_675391



По сути это будет фильтр столбца по "равно 369623" ИЛИ "равно 234567" ИЛИ "равно 675391"

А как эту конструкцию прикрутить с Текстбоксу? если возможно вообще

Автор - airwaves18244
Дата добавления - 17.01.2013 в 14:01
Alex_ST Дата: Четверг, 17.01.2013, 15:38 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, батенька, ведь это уже совсем другая тема, т.к. стандартный автофильтр не позволяет фильтровать более чем по двум условиям с функцией между ними либо И, либо ИЛИ, а Вы хотите больше.
Сделать-то это, может быть и можно, но не в рамках этой разработки.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу, батенька, ведь это уже совсем другая тема, т.к. стандартный автофильтр не позволяет фильтровать более чем по двум условиям с функцией между ними либо И, либо ИЛИ, а Вы хотите больше.
Сделать-то это, может быть и можно, но не в рамках этой разработки.

Автор - Alex_ST
Дата добавления - 17.01.2013 в 15:38
RAN Дата: Четверг, 17.01.2013, 18:45 | Сообщение № 20
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Леш,
[vba]
Код
Criteria1:=Array("2", "3", "4", "5", "6", "7", "9")
[/vba]
Если правильно понял...
Правда "the best!!!" тут не рулит... biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЛеш,
[vba]
Код
Criteria1:=Array("2", "3", "4", "5", "6", "7", "9")
[/vba]
Если правильно понял...
Правда "the best!!!" тут не рулит... biggrin

Автор - RAN
Дата добавления - 17.01.2013 в 18:45
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!