Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Выпадающий список с быстрым поиском в нескольких ячейках, для Excel 2010
 
Навеяно статьей Выпадающий список с быстрым поиском https://www.planetaexcel.ru/techniques/1/9645/
А если нужно именно такой выпадающий список с функцией поиска, но для заполнения списка, для нескольких строк? (не знаю как правильней сформировать описание, подсказывайте - исправлю)

Выпадающий список с поиском в Excel (Drop-down list in Excel)  
https://www.youtube.com/watch?v=dads5yOfdj0
https://yandex.ru/efir?stream_id=vrOpl1fPRO9Y
Только нужна функция Фильтр, которая на данный момент есть только в Office 365, либо ждать выхода Office 2022. А вообще очень круто, просто. Нет такого же лаконичного решения для Excel 2010?

Сам же и отвечу на этот вопрос. Есть, но сложно и долго. Вот мое решение. За основу взят пример Николая Павлова из урока и подредактирован.
Все работает как надо. Но для того чтобы сформировать такой работающий список, нужно подготовить столько Отборов, столько Диспетчеров имен, столько Проверок данных, сколько строк данных у вас имеется (в моем нужно примере 20, но настроено для примера 3).
Итого вопрос: как это упростить? Может попросить реализовать в PLEX? Думаю полезно будет многим
Изменено: Армен - 10 янв 2021 03:28:57
 
Цитата
нужно подготовить столько Отборов, столько Диспетчеров имен,...
в моем нужно примере 20, но настроено для примера 3)
А если две тысячи?
Не думаю, что это самый удачный метод
Я всегда пользуюсь старым классическим методом с формой
Форма с текстбоксом и списком и десятком строк кода намного проще чем 100500 формул  
 
надстройки по теме Выпадающий список с поиском :
Альтернатива выпадающему списку (форма с поиском)_2  https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=34212
Форма с поиском. Как наполнить форму, искать по ней и вставлять данные https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=104171&...
Надстройка выпадающий список с поиском "nerv_DropDownList_1.6" https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=109074&...

Цитата
Александр Моторин написал: Форма с текстбоксом и списком и десятком строк кода
понравилось, где почитать как сделать, подправить, перенести в другую книгу?
 
Цитата
Армен написал:
Нет такого же лаконичного решения для Excel 2010?
Есть, может не сильно лаконичное, но рабочее.
По вопросам из тем форума, личку не читаю.
 
только что увидел личку
Цитата
, где почитать как сделать
В разных справочниках. Но лично мне примеры помогают больше. Понятней
Надо просто понять принцип. Понять что делает каждая строка
В другой книге можно просто создать форму с тексбексом и списком
Или импортировать по ПКМ в проводнике проекта VBA фал из вложения
В коде я сделал пояснения для каждой строки
Скрытый текст
Изменено: Александр Моторин - 12 янв 2021 19:56:52 (добавил файл)
 
Цитата
Александр Моторин написал:
Но лично мне примеры помогают больше. Понятней
Александр, большое спасибо! На вашем примере сделал две формы для документов.
Подскажите, пожалуйста, как и в каком месте кода реализовать, чтобы по нажатию на клавишу esc текстбокс закрывался?
 
Олег Новожилов, Как прописать закрытие формы по Esc вне зависимости от фокуса
Реквизиты для благодарности и контакты для связи — в профиле
 
Jack Famous, я в VBA, к сожалению, не разбираюсь... Ищу готовые макросы и вставляю их. Предложенную вами ссылку я посмотрел ранее, но там идет разговор про кнопку "bt". Я скачал пример и посмотрел - там действительно есть кнопка при нажатии на которую появляется текстбокс и при нажатии на esc он пропадает. В макросе Александра нет кнопок. Я попытался вставить код из примера, но результата не получил. Извините, повторюсь, но в VBA я не разбираюсь...(
 
Цитата
Олег Новожилов написал:
В макросе Александра нет кнопок
и не надо. Создаете сами свою, помещаете её за пределами формы, а свойству кнопки Cancel назначаете свойство True. Для события клика по кнопке пишите: Unload Me. ВСЕ. Там вообще не надо знать VBA - все расписано.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
мучают тут человека чтобы сам разобрался. это конечно правильно) я вот тоже вообще не разбираюсь, в первый раз залез форму редактировать

Олег Новожилов, держи
только не совсем понятно, зачем это вам, если даже из нескольких найденных позиций нельзя стрелками выбрать желаемый, а приходится мышкой.. Нельзя это улучшить в коде этого выпадающего поиска?
Изменено: Армен - 3 мар 2021 14:12:47
 
Армен, спасибо! Пример по вашей ссылке я тоже ранее разбирал и кое что использовал для своих целей. Но там форма не пропадала по нажатию на esc...
Как я понял, вы добавили на текстбокс маленькую кнопку и реализовали вариант предложенный выше. Ещё раз спасибо, буду разбираться.
Но неужели нет варианта закрывать текстбокс по esc? Без лишних кнопочек? Извините, если вопрос дилетантский.)
 
Олег Новожилов,как говорили в переадресованной теме, можно эту кнопочку разместить за пределами формы (т.е. раздвинуть переместить кнопку туда и снова задвинуть форму)
 
Армен, спасибо! Я просто убрал с кнопочки название, сделал её высоту =0 и её и не видно, но всё работает прекрасно!
 
Цитата
Олег Новожилов написал:
нет варианта закрывать текстбокс по esc? Без лишних кнопочек?
ну как бы и да и нет...TextBox во-первых не может жить отдельно от формы. Поэтому закрывать надо форму. Но если не использовать кнопку - то решение Вас очень удивит: там будет 100500 строк кода, куча непонятных функций и все в этом духе. Потому что придется отслеживать и мышку, и клавиатуру и активность самой формы и даже Excel. Поэтому лучше все же кнопочка :) Надежно и элегантно.
Цитата
Олег Новожилов написал:
сделал её высоту =0 и её и не видно
не лучший вариант, если потом с этой кнопочкой что-то сделать надо будет. Отыскать её на форме с нулевыми размерами будет не так-то просто...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Отыскать её на форме с нулевыми размерами будет не так-то просто...
Дим, почему? Через КомбоБокс окна свойств очень даже легко найдётся :)
 
Цитата
Юрий М написал:
Через КомбоБокс окна свойств очень даже легко найдётся
ага. Особенно, если случайно этот элемент затащили не пойми куда по неведению...Не люблю я такие методы - самому ненароком можно так закинуть(или вообще удалить), что потом фиг поймешь откуда ноги растут.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
если случайно этот элемент затащили не пойми куда
Я в одном из проектов вообще умышленно отправил кнопку жить за пределы формы ))
 
Цитата
Юрий М написал:
умышленно отправил кнопку жить за пределы формы ))
ну вот это я и советую, кстати. Но кнопка при этом видна во всей красе :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Юрий М написал:
Я в одном из проектов вообще умышленно отправил кнопку жить за пределы формы
Это как? Покажи плз.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Но кнопка при этом видна во всей красе
Почему? Не видно её, если в свойствах Left указать за пределами формы.
 
Да чего там показывать? ))
 
Цитата
Юрий М написал:
Не видно её, если в свойствах Left указать за пределами формы.
Воистину так. Не ведал...
Оно, конечно, как бы правильнее за пределами видимого окна формы, что явно видно  при смещении кнопки вправо или вниз. Сие куда удобней при редактировании формы. Я обычно кнопку мышом таскаю.
Но интересно.
 
Можно проще - в свойствах visible=false - в конструкторе видно, а при отображении нет  :)  
 
Пробовал - не видно..., но и не работает, как должно.
 
Если нужно чтобы "ESC" работала только из Textbox, то можно отследить нажатие кнопки "ESC" в событии KeyDown для Texbox'а (и доп кнопка не нужна)
Код
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyEscape Then Unload Me
End Sub
Изменено: Александр Макаров - 3 мар 2021 20:20:08
Страницы: 1
Читают тему (гостей: 2)
Наверх