Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос поиска текстового значения (Доработка), Ранее помогли с написанием кода для поиска значений из базы делюсь и прошу помощи в доработке
 
Друзья, привет!

Все мы знакомы с выпадающими списками, но бывает что значений оказывается слишком много для простого скролинга.
Для решения такой задачи заказал макрос год назад, делюсь для всех, во вложении.

Вопрос темы: Помогите доработать.
Сейчас возникла задача использовать несколько полей с поиском из разных блоков (порядка 4 листов на каждом по 3 столбца с поиском)., как же масштабировать этот макрос? Вот тут нужна помощь экспертов.

Вопросы с которыми не разобрался:
1) Какие элементы используются в  конструкторе? Если верно полня поле ввода это ActiveX текстовое поле, а что за ListBox и Lable? Не могу найти их, возможно они включаются? И можно ли создать их на 1 листе, а использовать на разных?
2) Можно ли переформатировать данный скрипт под функцию или необходимо прописывать набор из 4 макросов под каждый диапазон / базу?
3) Есть ли идеи по оптимизации кода, например строка "If Not Intersect(Target, Range("A2:A1000")) Is Nothing Then" - выглядит странно двойным отрицанием.

Буду рад если найдутся знающие люди и помогут унифицировать и масштабировать решение.

Заранее спасибо.
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
Цитата
1) Какие элементы используются в  конструкторе?
Forms.TextBox.1, Forms.ListBox.1, Forms.Label.1  Находятся на листе, изначально они скрыты (Visible = False). Для работы на других листах осоздавать там новые или эти переносить.
Цитата
2)... переформатировать... 3)... [оптимизировать]
Можно. Переделать все, сделать на UserForm :)

В этом разделе: один вопрос - одна тема.
 
Доброй ночи!

1) Нажмите на вкладке РАЗРАБОТЧИК  - Режим конструктора. Увидите все 3 элемента. Чтобы использовать на разных листах, надо создать UserForm и разместить на ней все эти элементы. А уже ее можно запускать на разных листах и в разных книгах (при определенных условиях).
2) Вопрос не понятен. Все макросы - событийные. Т.е. привязаны к объектам программирования (Вы 3 сами указали, а 4-й - это сам лист) и их событиям.
3) Приведенная строка кода - только выглядит странно. С ней всё ОК. О какой оптимизации Вы говорите? Что Вас в работе кода не устраивает?
Изменено: Михаил Лебедев - 21 ноя 2020 21:45:35
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
vikttur,спасибо. Это я понял, я не нашел как их добавить.
Скрин прилагаю.
Зеленым элемент для ввода текста.
А какие используются для списка вариантов и описания?
У меня есть вариант список текста, но он почему то не активен (выделил красным)
Вопрос в этом :)
Относительно 1 тема 1 вопрос, мне правда стоит разбить это на 3 темы? Показалось логичным сделать одной, прошу прощения
У меня еще 4 вопрос есть, как можно сделать чтобы ввод подтверждался не энтером а дабл кликом левой кнопкой мыши по нужному варианту.

Михаил Лебедев,
про UseForm понял, погуглю..
Есть мысль что можно создать единое событие для всей книги внутри которого проверять какой из диапазонов совпал, на основании чего выбирать.
А далее что то по аналогии с функциями запускать с параметрами (где искать, куда и что вставлять). Т.е. есть 3 макроса-функции, один управляющий и дополнительные для вставки.

В целом код работает стабильно, просто вопрос как минимизировать его при масштабировании, ну и хочется выбирать вариант двойным кликом мыши
Screenshot_1.png (73.09 КБ)
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
Ответы на Ваши вопросы могут кому-то понадобиться не в составе Вашей программы, а отдельно.

Ответ на первый вопрос Вы получили. 2) и 3) оптимизировать - переделывать полностью, а переделка - это уже другая история.
Цитата
phelex написал: чтобы ввод подтверждался не энтером а дабл кликом левой кнопкой мыши по нужному варианту.
это никак не связано с вопросом о том, какие объекты применяются.
 
vikttur,принято, разобью на темы.
По первому вопросу откуда взялись эти элементы вне UserForm и почему они у меня не активны?
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
Я же писал:
Цитата
vikttur написал: изначально они скрыты (Visible = False)
Посмотрите в первом макросе (в моем варианте строки скрытия закомментирваны)

Цитата
phelex написал: откуда взялись эти элементы вне UserForm
На листе можно размещать как ActiveX, таки элементы формы (посмотреть: вкладка Разработчик-Вставить; если такой нет - правый клик на ленте, Настройка ленты, там найдете, как добавить)
Страницы: 1
Читают тему (гостей: 1)
Наверх