Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Форма с поиском по маске. Фильтр по активному столбцу
 
Доброго времени суток, Планетяне!

Ранее создал тему, о форме с поиском и, в качестве примера рассматривал фильтр по активному столбцу. Пришло время вынести этот пример в отдельную тему.

Хотя данная тема и использует форму с поиском из другой моей темы но могут быть отличия в названиях (макросов, модулей, форм и глобальных переменных)
v 1.0
ОСОБЕННОСТИ:
    • вся фильтрация зашита в один модуль + событие книги для вызова по даблклику на любом листе (1 строка)
    • сделано в виде отдельной надстройки (форма с кодом + модуль для формы + модуль для фильтрации)
    • требует, чтобы фильтруемый диапазон содержал шапку и начинался с первой ячейки листа
    • работает с "умными" таблицами и обычными диапазонами
    • учитывает формат данных (ikki помог)
    • работает только с полным (нефильтрованным диапазоном). Если диапазон был отфильтрован, то все фильтры будут сброшены
    • как использовать:
           1. подключить надстройку
           2. создать ссылку на надстройку: в редакторе Tools -> Preference поставить галочку напротив PaRADoX_FilterActiveColumn или перетащить мышкой (если выбрать форму запуска в виде макроса на панели задач (кнопка), то ссылка не нужна)
           3. запустить макрос фильтрации любым удобным методом. Ссылки есть в v 1.1
Код
Option Explicit
'===========================================================================================
Private Sub Workbook_SheetBeforeDoubleClick(ByVal sh As Object, ByVal target As Range, Cancel As Boolean)
Cancel = True: FILE_Range_FilterActiveColumn
End Sub
Модуль для фильтрации

Последняя актуальная версия надстройки/кода теперь в родительской теме
Изменено: Jack Famous - 3 Сен 2019 14:47:31
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Уважаемый, Jack Famous . Установил Вашу надстройку, в модуль книги ( в окне Visual Basic в левой панели  в своем файле  "встал" на иконку "ЭтаКнига", правой кнопкой мыши выбрал в контекстном меню View Code и в окне справа вставил Ваш код. Свернул окно редактора VB и попробовал фильтровать... Вывалилось окно (в прикрепленном файле). Скажите, пожалуйста, что я делаю не так. Может нужно скопировать и вставить еще модуль фильтрации? Помогите ....
 
voxik-24, обновил надстройку и инструкцию (читать внимательно и смотреть все ссылки). Тестить пока некогда…
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Уважаемый, Jack Famous . Удалось после Ваших дополнительных разъяснений установить надстройку! Но фильтрация происходит в таблице из 45000 строк очень долго...2-3 минуты. Это можно поправить или от чего это зависит?
 
на 45000 строк и штатный автофильтр задумается)
кстати, Jack Famous, чем ваша надстройка отличается/лучще автофильтра?
 
voxik-24, если формат данных текстовый или общий, должно быть быстрее. Оптимизация впереди
Dima S, в первую очередь, это поиск. Поиск по маске. В стандартном фьльтре поиск довольно ограничен (без подробностей). В своей надстройке я пытаюсь совместить нестандартные вещи (кратко говоря)
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Jack Famous,
как Ваше понятие активный столбец соотносится с стандартными понятиями Excel
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, напрямую: ActiveCell.Column
Изменено: Jack Famous - 26 Авг 2019 12:42:15
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Уважаемый, Jack Famous . Ждем оптимизацию и быстродействие, но это как я понял, в планах. А на сегодняшний день хорошо было бы если с Вашей настройкой не приходилось каждый раз в других файлах делать лишние движения (туда скопируйте, там отметьте или перетащите....). Если на ее создание Вас вдохновила настройка Николая PLEX, то почему бы не сделать как у него? Я имею ввиду своя панель, на ней кнопкой вызывается форма фильтра и т.д. и не каких танцев - пока настройка подключена, она сразу во всех открывающихся файлах. Я все это к чему... дело Вы задумали очень хорошее, такой фильтрации нет ни в одной надстройке (даже у Гуру Павлова Н.) и многие были бы Вам благодарны за труды.
 
Цитата
voxik-24: такой фильтрации нет ни в одной надстройке (даже у Гуру Павлова Н.)
думаю, что она просто задумывалась изначально не такой и свою работу делает прекрасно
Цитата
voxik-24: своя панель, на ней кнопкой вызывается форма фильтра и т.д. и не каких танцев
танцы нужны были только для обеспечения вызова формы по событию книги. Думаю, что можно было бы и это обойти (делать программно, а не ручками), но пока что не до этого. Панель свою создавать ради одной кнопки смысла не вижу, а вывести кнопку на панель быстрого доступа можно и так в пару-тройку шагов
Изменено: Jack Famous - 26 Авг 2019 15:04:27
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
v 1.1

ИЗМЕНЕНИЯ:
    • изменены названия формы и модулей, а также префиксы глобальных переменных
    • работает даже если фильтр уже стоит (дофильтровка)
    • фильтрует все форматы (преобразует в общий, фильтрует и возвращает формат как было)
    • при поиске в форме добавляет к некоторым форматам формат для поиска (например дата и время - это числа и к ним добавляется более понятный формат)

ВАЖНО: по-прежнему не фильтрует числа более 10 знаков (включая целую и дробную часть). Относится и ко времени тоже. Обходить смысла не вижу (не надо)
ВЫЗОВ: тут в коде показан пример вызова макроса на событии книги. Хотите вешайте на горячие клавиши, хотите выводите кнопку (ответил в предыдущем посте). А кому лень подключить библиотеку, поставив галочку или перетащив проект, то посмотрите, как это делается программно
Пример вызова (полный путь) макроса фильтрации из надстройки (событие даблклика в книге)
Код формы «FRM_Search»
Модуль с макросами для формы «FRM_Search_macro»
Модуль фильтрации «FRM_Search_FilterActiveColumn»
надстройка проверена. Полностью работает. Файл для теста присутствует. Кода и форм в файле нет, зато есть ссылка на надстройку
Изменено: Jack Famous - 26 Авг 2019 12:41:26
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1
Читают тему (гостей: 1)
Наверх