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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2016, 15:53   #11
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

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

Насчёт задачи - она изначально указана, и в третий раз подтверждаю, что вы её поняли правильно. Просто нет смысла выкладывать исходный файл, т.к. он содержит бешеный объём статистических цифр. В нём на 10 листах есть среди других две вот таких колонки с указанием на адрес. На стат.подсчёты это ПОКА ЧТО никак не влияет, но в процессе докрутки файла, когда-нибудь, может быть можно будет и посчитать по улицам. Но без возможности быстро находить и выбирать позицию во втором списке это бесполезная трата времени.

Таким образом, задача: внедрить контекстный поиск во второй зависимый длинный список.

Попробуем видоизменить вопрос. У комбобокса есть куча всяких параметров, в которых я не аллё совсем. У функции выпадающего зависимого списка скорее всего есть такие же параметры, только где они зашиты я тоже не знаю. Если можно сделать контекстный поиск для одного независимого простого выпадающего списка, можно ли на базе таких параметров настроить комбобокс хотя бы на одну ячейку, чтобы потом растащить её по всему файлу? Или это ещё хуже надстройки получится?

Вот, как например, при внедрении в ячейку "длинного" списка можно убрать галку "Список допустимых значений". Тогда не будет выпадающего списка, можно печатать в ячейку руками, но нужно точно знать как именно указана та или иная улица, вплоть до знака. Автоподстановки и предложений по вариантам ввода в этом случае, как мы видим, нет. Можно ли отсюда оттолкнуться для создания контекстного ввода с автоподстановкой и предложениями?
guitar2003 вне форума Ответить с цитированием
Старый 31.05.2016, 16:19   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

выбираете тип фильтра
значение фильтра
получаете в списке, то что соответствует фильтру
Вложения
Тип файла: rar Адресный список.rar (57.7 Кб, 21 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.05.2016, 16:26   #13
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
выбираете тип фильтра
значение фильтра
получаете в списке, то что соответствует фильтру
Как оказалось, на работе нет ни РАРа, ни админских прав. Дома гляну.
Спасибо!
guitar2003 вне форума Ответить с цитированием
Старый 31.05.2016, 21:32   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Внедрил, вроде удобно, и тормозить тут нечему.
Вложения
Тип файла: zip Адресный список.zip (60.4 Кб, 39 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.06.2016, 05:42   #15
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
Хорошо

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Внедрил, вроде удобно, и тормозить тут нечему.
Hugo121, да! Это именно то, что было нужно! Спасибо огромное!
guitar2003 вне форума Ответить с цитированием
Старый 01.06.2016, 13:43   #16
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

Hugo121, а не подскажете, в чём может быть проблема?

Применил ваш макрос в своём файле. Всё выпадает, всё ищется, всё круто. Но через какое-то время перестаёт работать выделение нужного значения в Листбоксе. Т.е. бокс виден, список в нём меняется в зависимости от значений в Текстбоксе, но выбрать эти значения не возможно. Ситуация исправляется после перехода в режим конструктора и моментального выхода из него, но не надолго. Потом снова здорово.

Как исправить этот глюк?
guitar2003 вне форума Ответить с цитированием
Старый 01.06.2016, 13:45   #17
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Сейчас код не вижу (архивы недоступны), посоветую посмотреть пошагово что там происходит при такой ситуации.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.06.2016, 14:25   #18
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

Как я понял, дело в строках

With Me.TextBox1
.Top = Target.Top: .Left = Target.Left: .Text = "": .Activate
End With

With Me.ListBox1
.Top = Target.Top + 20: .Left = Target.Left: .Clear

Если переписать
With Me.ListBox1
.Top = Target.Top + 20: .Left = Target.Left: .Activate
то всё выделяется нормально, но пропадает возможность ввести выбранное значение двойным кликом или энтером. Тем не менее, значение вводится переходом на соседнюю ячейку.
guitar2003 вне форума Ответить с цитированием
Старый 02.06.2016, 10:16   #19
guitar2003
Пользователь
 
Регистрация: 30.05.2016
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Сейчас код не вижу (архивы недоступны), посоветую посмотреть пошагово что там происходит при такой ситуации.
В общем, как я понял, код не отдаёт фокус мыши.
Мой колхозный способ исправления .Clear на .Activate начинает грузить память. Где копать? Почему в вашем файле мышь понимает, что она нужна на листбоксе, а в моём нет? Я сместил в коде листбокс под текстбокс (мне так показалось красивше) - может в этом проблема? Есть там какой-то параметр, который говорит, что листбокс надо искать именно в этой части экрана, а не в какой-то другой?
guitar2003 вне форума Ответить с цитированием
Старый 02.06.2016, 10:38   #20
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Помню были решения с листбоксом, который находился ниже тексбокса, и вроде работали без проблем.
Может быть текстбокс перекрывает? По коду вроде нет никаких догадок что может влиять.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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