С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 79

Combo Box/ dropdown list

28.02.2014, 14:27. Показов 3377. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,
вчера решил одну проблему и вот тут же появилась вторая, которая не даёт покоя.

1) Хотелось бы чтоб в Combo Box, по нажатии буквы оставались только те данные в списке которые соответствуют набору.

2) Очень не хвататет функции чтоб можно было колёсиком мышки листать

Присутствует 4 Combo Box в 1-ом список Городов 2-ом относительно подходящий Индекc (3-4 идентичны)

Искал в интернете, но так ничего не нашёл понятного.

прикрепил файл (2007) для примера.

Был бы очень блогодарен за любой совет.
Вложения
Тип файла: zip abcd.zip (328.7 Кб, 15 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2014, 14:27
Ответы с готовыми решениями:

Автозаполнение Combo box
Здравствуйте, у меня есть комбо бокс, к которому прикреплен массив(frmВводРедактирование.cboАдрес.List = Адреса) При запуске формы в...

Заполнение Combo Box
Здравствуйте! Подскажите пожалуйста. Есть два combo box на одной форме. Как при выборе значения с combo box 1, заполнить значения в Combo...

Выбор данных из списка в Combo Box
Можно ли сделать так, чтобы в combo box юзер не мог ввести свои данные а мог лишь выбирать мышью из списка. А то ведь так и ошибку вызвать...

7
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
28.02.2014, 15:30
Нашел свою давнишнюю наработку по этому поводу.
Код формы
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Dim a_s, tmp_s As Object
 
Private Sub UserForm_Initialize()
Set a_s = ActiveSheet
        'Создаем новый лист в конце книги,
Set tmp_s = Sheets.Add(, Sheets(Sheets.Count))
a_s.Activate
With tmp_s
        'копируем в него первые 3 столбца из текущего листа,
    a_s.Range("A:C").Copy .Range("A1")
        'сортируем,
    .Range("a1").Sort key1:=.Range("a1"), order1:=xlAscending, header:=xlYes
        'копируем заголовок для списка условий фильтра
    .Range("a1:c1").Copy .Range("e1")
        'вставляем пустую строку, чтобы заголовок не попал в поле-список
    .Rows(2).Insert Shift:=xlDown
        'Инициализируем поле-список
    ListBox1.ColumnCount = 3
    ListBox1.RowSource = .Name & "!" & .Range("a3").CurrentRegion.Address
End With
End Sub
 
Private Sub UserForm_Terminate()
Application.DisplayAlerts = False
tmp_s.Delete
Application.DisplayAlerts = True
End Sub
 
Private Sub TextBox1_Change()
        'При изменении содержимого текстбокса
With tmp_s
        'Очищаем результаты работы фильтра
    .Columns("i:k").ClearContents
        'Назначаем условие фильтра по 1-му столбцу.
        'В таком виде поиск будет по вхождению текста.
        'Чтобы искать по началу, надо удалить первые "*" &
    .Range("e2") = "*" & TextBox1.Text & "*"
        'Применяем фильтр
    .Range("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
        "E1:G2"), CopyToRange:=.Range("I1"), Unique:=False
        'вставляем пустые ячейки, чтобы заголовок не попал в поле-список
    .Range("I2:K2").Insert Shift:=xlDown
        'Назначаем поле-списку новое содержимое
    ListBox1.RowSource = .Name & "!" & .Range("i3").CurrentRegion.Address
End With
End Sub

для этой задачи хорошо использовать Textbox & Listbox на форме. При изменении содержимого Textbox список фильтруется и Listbox обновляется.
Идеология работы: при запуске формы создается новый лист в конце книги, на него копируются первые 3 столбца текущего листа (они должны иметь заголовки!), производится сортировка по первому столбцу, подготавливается диапазон условий для расширенного фильтра (копируется заголовок в 5-7 столбцы).
При изменении содержимого Текстбокса формируется условие фильтра, результат фильтрации помещается в 9-11 столбцы, обновляется список.

Я человек ленивый, поэтому подпрограммы сортировки и фильтрации не пишу, использую Экселевские средства Опробовал на списке из 5800 строк - форма не тормозит!
Миниатюры
Combo Box/ dropdown list  
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
28.02.2014, 16:07
2) Проблема обсуждалась много раз, одно из решений тут: http://www.mrexcel.com/forum/e... ost2270153
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 79
28.02.2014, 16:31  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
2) Проблема обсуждалась много раз, одно из решений тут: http://www.mrexcel.com/forum/e... ost2270153
спасибо, сейчас посмотрю.
Ваш способ выше не очень подходит для мена.

Добавлено через 3 минуты
Цитата Сообщение от Казанский Посмотреть сообщение
2) Проблема обсуждалась много раз, одно из решений тут: http://www.mrexcel.com/forum/e... ost2270153
Я один из новичков, для меня конечно немного сложновато.

Хорошо есть код, но к чему его привязать?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
28.02.2014, 16:46
Цитата Сообщение от Frankfurter Посмотреть сообщение
Хорошо есть код, но к чему его привязать?
Первый кусок кода надо поместить в модуль формы. Предполагается, что листбокс, который надо прокручивать мышкой, называется ListBox1.
Второй кусок кода надо поместить в обычный модуль.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 79
28.02.2014, 17:34  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Первый кусок кода надо поместить в модуль формы. Предполагается, что листбокс, который надо прокручивать мышкой, называется ListBox1.
Второй кусок кода надо поместить в обычный модуль.
Не могли бы вы мне подскозать что есть что?

Я занаю все названия только на немецком. Что искал описание в интернете , но не могу догнать.

спасибо
Миниатюры
Combo Box/ dropdown list  
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.03.2014, 00:54
1 - модуль книги. Там располагаются обработчики событий книги: Workbook_Open, Workbook_BeforePrint и т.д.
2 - модуль листа. Там располагаются обработчики событий листа: Worksheet_Change и т.д., а также обработчики событий элементов управления ActiveX, расположенных на листе (ваших комбобоксов).
3 - обычный модуль. Там располагаются макросы, написанные человеком или макрорекордером, пользовательские функции, объявляются глобальные переменные и константы.

А форм тут нет. Адаптировать код для прокрутки для листбокса на листе я не возьмусь. Поищите, скорее всего найдете. А вот код для фильтрации списка практически не изменится.
1
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 79
03.03.2014, 12:35  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
А форм тут нет. Адаптировать код для прокрутки для листбокса на листе я не возьмусь. Поищите, скорее всего найдете. А вот код для фильтрации списка практически не изменится.
спасибо,
я думаю пока мои знания не достигли того уровня чтоб я смог это сделать сам.
Поэтому решил пока оставить этото вопрос.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2014, 12:35
Помогаю со студенческими работами здесь

Combo box drop-down menu с данными из столбца
Подскажите пожалуйста, как можно реализовать выпадающий список в combo box, чтобы пользователю при вводе первой буквы показывались только...

Combo box или "Выпадающий список с контекстным поиском"
Добрый вечер! Уважаемые знатоки! :) Нашел такую замечательную штуку, как Combo Box. Создал справочник, а для поиска в нем, Благодаря Денису...

Как построить график в VBA по данным, которые находятся в list box
Добрый вечер! Необходимо построить график, который будет отображаться в Excel, по данным из List Box1 и List Box2. (Данные...

List Box. Копирование выделенных строк в Combo Box
Здравствуйте форумчане! Выручайте. Я проболела 2 недели. Пока болела вся группа познакомилась с Delphi. Нужно срочно сдавать вот...

Combo box
Посмотрите рисунок, ребята! Обратите внимание на столбик, над которым написано 'IN'. В этих четырех Комбо-Боксах предложены варианты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru