Страницы: Пред. 1 2
RSS
Форма с поиском по маске. Как найти и получить одно или несколько значений
 
v 1.3
ИЗМЕНЕНИЯ:
    • добавлены префиксы к публичным переменным ("FFF_") и процедурам ("FILE_") формы. Нужно для того, чтобы их быстро можно было заменить на другие в случае конфликта имён. Например, у меня надстройка с такой же формой и в ней всё аналогичное, кроме префиксов.
    • оставлены только модуль формы и стандартный модуль. Оформлено всё в надстройку
Работа с надстройкой только через функцию:
FILE_Search_Start (tmpArr1x(), Optional Multy As Boolean, Optional DontSort As Boolean) As Boolean
Код из формы «FormSearch»
Модуль «FormSearch_macro»
Пример с фильтрацией по активному столбцу теперь развивается в отдельной теме
Изменено: Jack Famous - 22.08.2019 15:23:47
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Пример с фильтрацией по активному столбцу теперь развивается в отдельной теме
Уважаемый, Jack Famous, а как называется тема?
 
voxik-24, она в процессе создания (2-3 часа ещё). Как только будет готова, дам ссылку в #31
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
как включить надстройку? что то у меня не получается
 
azma, как обычную надстройку. Есть статья в Приёмах
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, доброе время суток.
После установки надстройки, в редакторе VBA схватил мышкой проект надстройки и перетащил его на проект целевого файла.
Вкладка референсес появилась. Перешел на лист целевого файла (со списком). Двойной жмяк на любой ячейке столбца с интересующим списком не дает никакого эффекта, кроме обычного проваливания в ячейку... Сохранил файл, закрыл его, снова открыл - ничего не изменилось - двойной жмяк по ячейке приводит к проваливанию в ячейку. Зашел в редактор VBA - вкладка референсес исчезла.

Подозреваю, что причина в том, что не выполнено это условие:
"Работа с надстройкой только через функцию:
FILE_Search_Start (tmpArr1x(), Optional Multy As Boolean, Optional DontSort As Boolean) As Boolean"

Что нужно сделать, что-бы работа с надстройкой была через эту функцию?
 
DNC,
Цитата
Jack Famous (из #31): Пример с фильтрацией по активному столбцу теперь развивается в  отдельной теме
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, а меня как раз интересует именно поиск значений в столбце по любой части строки, для последующего выбора наиболее подходящего и вставки его в этот-же столбец... т.е. фильтрация в данном контексте не нужна.
Изменено: DNC - 26.08.2019 14:03:22
 
DNC, тогда рабочий пример для вас в #19. Позже сделаю надстройку (сейчас только в файле)…

UPD: надстройка готова
Изменено: Jack Famous - 26.08.2019 15:37:39
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
v 1.4: «All-In-One»

Снова объединил последние версии для фильтрации и вставки в 1 модуль/макрос
Вызов отличается одним необязательным булевым параметром (для вставки)
Вызов по событию книги (даблклик)
Модуль фильтра/вставки «FRM_Search_ActiveColumn»
Модуль для формы
Код формы
Изменено: Jack Famous - 26.08.2019 16:20:48
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,
спасибо большое за труды
но я так и не смог запустить эту надстройку:(
запуск макроса старт вызывает стандартное окно с макросами, в котором нет никаких макросов для выбора
для использования надстройки в разных файлах нужно в каждом делать перетаскивание проекта надстройки на проект целевого файла?
 
Цитата
DNC: спасибо большое за труды
пользуйтесь на здоровье  ;)
Цитата
DNC: для использования надстройки в разных файлах нужно в каждом делать перетаскивание проекта надстройки на проект целевого файла?
таким образом, вы делаете макросы из надстройки видимыми в книге. Отсюда и ответ: запускаете макрос из книги - да, нужна ссылка, а если у вас макрос выведен кнопкой на панель, то нет
Ну и, разумеется, на любой чих можно и команды написать (ссылки давал)
Я "фарширую" файл формой и модулями, то есть без использования надстройки. Но в моей личной надстройке такая форма есть (для использования внутри неё). Таким образом, у меня и ссылок-то не надо  ;)
Изменено: Jack Famous - 26.08.2019 17:30:23
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
v 1.5
    • снова изменены имена публичных переменных, функций и процедур
    • в надстройке подключены библиотеки для обеспечения раннего связывания
    • фильтр сработает только если вызов произошёл внутри области данных листа, а вот вставка сработает и вне неё
    • при выборе нескольких значений для сцепки, будет запрошен разделитель, который запоминается
    • тип вызванной процедуры (фильтр или вставка) отображается в шапке формы
    • всё улучшено и допилено
    • добавлены "горячие клавиши" для вызова процедур из любого файла:
           — для фильтрации: вызов процедуры ADD_FRM_Search_ActiveColumn.StartFilter по Ctrl+Shift+X
           — для вставки:        вызов процедуры ADD_FRM_Search_ActiveColumn.StartInsert по Ctrl+Shift+Z
    i на скрине показано, как вывести 2 кнопки (для вызова фильтрации или вставки) на панель быстрого доступа
    i иногда надстройка (не только моя) не хочет автозапускаться (даже будучи подключенной) вместе с приложением Excel и запускается (становится видна в VBE) только при запуске любой процедуры из неё. Чтобы гарантировано синхронизировать запуски советую создать ярлык надстройки и положить его в папку XLSTART

Модуль книги надстройки с закомментированным примером вызова процедур по событию книги (только этот закомментированный код нужно будет скопировать в модуль книги нужного ФАЙЛА, а не надстройки)
Код формы «ADD_FRM_Search»
Модуль взаимодействия с активным столбцом «ADD_FRM_Search_ActiveColumn»
Модуль для работы с формой «ADD_FRM_Search_macro»
Изменено: Jack Famous - 03.09.2019 16:09:54
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Уважаемый, Jack Famous . Как теперь работать с надстройкой версии 1.5???? По чистому подключению и вставке кода в Модуль книги ничего не происходит! Если же делать как Вы давали подробные рекомендации для версии 1.0 ( с перетаскиванием, отметкой галочки и т.д.) то тоже не работает!!!!  Опишите процесс установки подробно.
 
voxik-24, просто подключить, как обычную надстройку. Вызов горячими клавишами сработает в любой открытой книге. Больше ничего вставлять или перетаскивать не нужно — подключаем и работаем.

Конечно, если вы хотите внедрить функционал надстройки в книгу (файл), чтобы она работала самостоятельно без надстройки, то, конечно, нужно будет перенести всё её содержимое…
Изменено: Jack Famous - 04.09.2019 11:37:56
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Уважаемый, Jack Famous . Есть одна проблема для решения: если в таблице в активной колонке по которой осуществляется поиск есть в какой-либо ячейке #Н/Д, то надстройка не срабатывает - выдает ошибку. Это можно как-то побороть?
 
voxik-24, благодарю за найденный баг - ща поправлю и ещё парочку моментов зацеплю…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
v 1.6
    • улучшена сортировка. Теперь, если формируется строка "базовое значение -> значение в формате", то сортировка происходит ОТДЕЛЬНО по базовым значениям (хорошо видно на поиске по денежным и прочим числовым форматам)
    • в процедуру по формированию строки поиска из видимого диапазона добавлена проверка на значения с ошибкой — теперь они исключаются из списка поиска
    • публичная константа разделителя для формирования строки с учётом формата теперь находится в модуле «ADD_FRM_Search_macro»
Основной модуль, в который были внесены изменения «ADD_FRM_Search_macro»
Изменено: Jack Famous - 04.09.2019 14:21:55
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
О! без привязки к определенным файлам!
Супер!
Спасибо!
Jack Famous, только вот по скрытым и отфильтрованным ячейкам не ищет насколько я понял...
Подскажите как обойти это ограничение?
 
DNC, пожалуйста.
Это не ограничение, а логика — зачем искать значения, которые уже скрыты фильтром?…
А так в строке Set=rngCol… убрать ".SpecalCells" и все после в строке. Ну или добавить строку, снимающую фильтр
Изменено: Jack Famous - 08.09.2019 13:48:08
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
v 1.7
   • добавлена возможность поиска и вставки значений из отдельного списка
Данные берутся из именованного диапазона "PRDX_rngList" активной книги. Вызов через "Ctrl + Shift + C"
   • добавлен обход ошибки при назначении/снятии "горячих клавиш"
Это нужно для работы с книгой в защищённом режиме (надстройка при этом, разумеется, не работает, как и любые макросы)
   • сложная сортировка (по базовой части) при учёте формата — ускорена за счёт передачи уже готового массива (новая публичная переменная)
   • имена надстройки и модулей изменены
   • различные ускорения и улучшения

Модуль книги (надстройки)
Код из формы «ADD_FRM_Search»
Модуль «ADD_FRM_Search_Main»
Модуль «ADD_FRM_Search_Process»
Изменено: Jack Famous - 12.09.2019 16:14:18
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Уважаемый, Jack Famous . Надстройка все лучше и лучше... Но есть еще поле для развития :)  Было бы здорово если Вам удалось бы реализовать следующее: При вставке с именованного списка "PRDX_rngList" активной книги, выбранные позиции вставляются в одну ячейку, разделяясь указанным пользователем разделителем...применение такой вставки даже не знаю для чего, ну может в каких то отдельных случаях , а хотелось бы чтобы вставка происходила построчно *в столбик" и тогда вставка приобретает логический и практический смысл.
 
Цитата
voxik-24: есть еще поле для развития … применение такой вставки даже не знаю для чего … а хотелось бы чтобы вставка происходила построчно "в столбик" и тогда вставка приобретает логический и практический смысл
ваше заявление — одна из самых необъективных вещей, которые я когда-либо слышал  :D  :D  :D
Неужели вы не понимаете, что то, что нужно вам может быть абсолютно ненужно и непонятно кому-то ещё?… В создании формы я руководствовался необходимостью и достаточностью, а также минимальными рисками потери данных пользователя. То, что вы хотите сделать может легко "затереть" данные пользователя, в то время как с помощью текущей версии можно добиться того же, просто запустив несколько раз.
Впрочем — если хотите, то сделать это очень просто: замените блок со строки 66 до строки 72 (в модуле «ADD_FRM_Search_Process»)
КОД
писал тут, а не в редакторе и не тестил. Вставка происходит БЕЗ учёта видимости ячеек, то есть от активной и ниже, сколько данных было выбрано…
Изменено: Jack Famous - 16.09.2019 10:41:01
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Уважаемый, Jack Famous . Никоим образом не хотел Вас "нагнуть" под свои потребы.... Понимаю, как ревностно Вы относитесь к своей работе (делаете нужное дело на безвозмездной основе и еще есть те, кто хотел бы чтобы настройка и кофе варила). Но еще раз, (надеюсь, уже остыв :)) неужели Вы не видите полезность вставки столбиком? Н-р: есть огромный перечень, а нужно быстро вставить  по порядку n-ное количество наименований расположенных в разных частях этого списка. В Вашей надстройке это пара секунд только для проставления галочек и вуаля - дело сделано. Но даже если Вы не согласны с моим мнением, все равно спасибо за труды. Ваша надстройка работает на Ваш статус как специалиста высокого уровня. Только не забрасывайте ее. Хорошего дня.
 
voxik-24, я не буду встраивать в неё этот инструмент по-дефолту, а если хотите себе такой "швейцарский нож" в лучших традициях китайцев — я вам уже написал, что нужно сделать  ;)
Цитата
voxik-24: есть огромный перечень, а нужно быстро вставить  по порядку n-ное количество наименований расположенных в разных частях этого списка
а как вы себе представляете поисковую маску, при которой "расположенные в разных частях этого списка наименования" все под неё подойдут? Для такой реализации нужен "контейнер" для хранения выделенного (при поиске по различным маскам), проверка на скрытые ячейки при вставке и т.д. Это по-хорошему.
Мне такое пока не нужно и не интересно
Изменено: Jack Famous - 17.09.2019 12:18:23
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Здравствуйте
Jack Famous, а есть ли возможность усовршенствовать форму так, что-бы она могла работать, если фильтр выставлен не с первой строки.
Что я имею ввиду (файл приложен).
Если строки фильтра имеет значение более ежели 1, то форма не срабатывает, а выдает окошко
 
Цитата
lobaty: есть ли возможность усовершенствовать форму так, что-бы она могла работать, если фильтр выставлен не с первой строки
разумеется, но тогда возникает вопрос "какую строку считать заголовками". Кроме того, для меня это способ проверки, т.к. любая таблица у меня начинается с первой строки. Адаптация формы под конкретные нужны возможна - это платно, пишите в личку

P.S.: возможно я уберу из формы проверку первой строки, но точно не в ближайшее время
Пока попробуйте написать что-то в A1 - может поможет (нет времени разбираться)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: Пред. 1 2
Наверх