Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2016, 10:03   #1
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
Печаль Контекстный поиск в выпадающем связанном списке

Добрый день, уважаемые!

Имеется файл с двумя зависимыми списками: выбор улицы, станции метро или населённого пункта в зависимости от выбора значения в первичной ячейке.

Из-за непомерной длины списка улиц Москвы (более 3000 наименований) пользоваться выпадающим списком без функции поиска практически невозможно. Да что там Москва, одних станций метро более 100 - это уже проблема.

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

Т.е. задача следующая: возможность поиска нужных наименований в колонке B путём ввода букв в поле ячейки после выбора значения из первичного списка в колонке А.

Файл примера (урезанный по ТТХ форума) вложен. См. Лист2.
Помогите пожалуйста!


ЗЫ. В MSAccess просьба не посылать. Его нет и не предвидится.
Вложения
Тип файла: xlsx Адресный список.xlsx (98.3 Кб, 25 просмотров)
guitar2003 вне форума Ответить с цитированием
Старый 30.05.2016, 10:51   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если использовать файл "Удобный поиск в выпадающем списке_12_1.xls" от Gig_Ant, то в нём достаточно изменить всего одну строку:

Код:
Function myGetListIndex() As Long
    myGetListIndex = 0
    On Error Resume Next
    myGetListIndex = Application.WorksheetFunction.Match(Selection.Offset(, -1).Value, dLists.keys, 0) - 1
  '  myGetListIndex = Application.WorksheetFunction.Match(iNumListColumn, dLists.Items, 0) - 1
End Function
Но списки в надстройку уже должны быть занесены вручную.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 30.05.2016, 11:04   #3
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

А без надстроек никак нельзя это реализовать? Через Combobox, допустим?
guitar2003 вне форума Ответить с цитированием
Старый 31.05.2016, 08:16   #4
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

Граждане, такое дружное молчание мало-мало наводит ужас...
Живые есть?
guitar2003 вне форума Ответить с цитированием
Старый 31.05.2016, 11:25   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Двигать комбобоксы по листу - это уже нужно VBA, тогда уж почему не надстройку?
Если эта сложная - были варианты поппроще, не столь универсальные, но там переделывать - уже работа.
Ну или можно всё и в этом файле сделать, взяв за основу уже готовое. Но это тоже будет VBA.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.05.2016, 11:46   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

или с помощью одной относительно простой формулы
Код:
=ИНДЕКС(АДРЕСА!C1:C8;2;ПОИСКПОЗ(АДРЕСА!R2C3;АДРЕСА!R1;)):ИНДЕКС(АДРЕСА!C1:C8;СЧЁТЗ(ИНДЕКС(АДРЕСА!C1:C8;;ПОИСКПОЗ(АДРЕСА!R2C3;АДРЕСА!R1;)));ПОИСКПОЗ(АДРЕСА!R2C3;АДРЕСА!R1;))
и стандартных средств проверки ввода данных в ячейку
а с учетом того, что у Вас есть именованные диапазоны, относительно простую формулу, которая вычисляет диапазон допустимых значений, можно сделать совсем простой))
Код:
=ДВССЫЛ(АДРЕСА!R2C3)
обе формулы найдете в диспетчере имен.
Вложения
Тип файла: xlsx Адресный список.xlsx (63.8 Кб, 53 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.05.2016, 11:53   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так вопрос ведь был в "пользоваться выпадающим списком без функции поиска практически невозможно", сами списки подставлялись корректно.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.05.2016, 14:29   #8
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Так вопрос ведь был в "пользоваться выпадающим списком без функции поиска практически невозможно", сами списки подставлялись корректно.
Совершенно верно. С самими списками проблем нет. Проблема в их длине => в необходимости внедрения контекстного поиска в "длинный" зависимый список.

Цитата:
Сообщение от Hugo121
Двигать комбобоксы по листу - это уже нужно VBA, тогда уж почему не надстройку?
Файл, из которого выдрана эта проблема, весит больше 1 мегабайта, содержит в себе уже 11 листов, испещрённых разными формулами и функциями, вследствие чего ну ооооооооочень задумчив. Боюсь, внедрение туда надстройки совсем его повесит.

Других решений совсем нет?
guitar2003 вне форума Ответить с цитированием
Старый 31.05.2016, 15:01   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну так ведь надстройка это не "туда", это "рядом", особо не затормозит.
Но можно решение попроще и внедрить, тоже не утяжелит файл, это ведь не формулы.
Всё зависит от задачи в целом, что нам пока неизвестно.
Если решение нужно именно для этого конкретного одного файла, и надолго - думаю можно внедрить. Если для разных часто меняющихся - удобнее надстройка.
P.S. Кажется вот тут можно код позаимсвовать (не могу сейчас проверить - там всё в архивах...): http://www.planetaexcel.ru/forum/ind...1857&PAGEN_1=2
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 31.05.2016 в 15:10.
Hugo121 вне форума Ответить с цитированием
Старый 31.05.2016, 15:35   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

как-то так:
Вложения
Тип файла: rar Адресный список.rar (57.7 Кб, 57 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка значений в выпадающем списке Jaroslav Microsoft Office Excel 2 04.05.2014 19:04
фильтр в выпадающем списке Red Warrior Microsoft Office Excel 1 17.06.2013 11:42
Аналог ListIndex в выпадающем списке VictorM Microsoft Office Excel 2 07.11.2012 00:23
Различные форматы в выпадающем списке Eldrich JavaScript, Ajax 3 23.03.2011 22:03
Пусто в выпадающем списке? ZORRO2005 Microsoft Office Excel 6 10.01.2008 11:59