Страницы: 1 2 След.
RSS
Поиск наименования в справочнике по вводимым значениям в combobox UseForm
 
Добрый вечер!
Мучился, мучился, но так и не получилось. В ячейке Е6 (лист - Форма) работает поиск города по вводимым буквам (проверяется по данным на листе Справочники). Помогите, пожалуйста, исправить код в приложенном файле таким образом, чтобы поиск названия города был возможен по вводимым буквам в combobox (cb1) UseForm. Заранее спасибо!

P.S. код в приложенном файле создавал не я, скачал в интернете, но это было давно.
Изменено: dmt. - 14.01.2015 22:07:24
 
dmt. пишет:
Цитата
чтобы поиск названия города был возможен по вводимым буквам в combobox (cb1) UseForm
КомбоБокс  по умолчанию так и ведёт себя. Осталось только его заполнить.
Один из вариантов: удалите/закомментируйте весь код в модуле формы и добавьте туда такой:
Код
Private Sub UserForm_Initialize()
Dim i As Long
    With Sheets("Справочники")
        For i = 2 To 8
            Me.cb1.AddItem .Cells(i, 1)
        Next
    End With
End Sub
 
 
У меня файл не работает пишет почему-то ошибку при открытии (Excel 2010)
can't exit design mode because control cannot be created
У кого ещё такое было?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
У меня аналогично было. Закомментировал (пропустил) в модуле книги строку
Код
Application.OnKey "{F12}", "sv" 
 
Цитата
Юрий М пишет: Один из вариантов: удалите/закомментируйте весь код в модуле формы и добавьте туда такой:
Спасибо большое. Но это не то, по факту получается, что мы просто заполняем combobox списком данных. При этом поиск в данном combobox идет по последовательно введенным значениям, в то время как combobox на листе ищет совпадения во всех названиях по введенным значениям. Городов очень много и хотелось бы такой же универсальный поиск перенести на UseForm.
 
КомбоБокс будет заполнен полностью списком из листа Справочники, но при вводе символов Вам будут предлагаться ТОЛЬКО подходящие. А разве не это Вы просили?
 
Цитата
Юрий М пишет: А разве не это Вы просили?
Смотрите, что получается. Есть список городов (в качестве примера он небольшой):
Абакан
Волгоград
Воркута
Иркутск
Калуга
Москва
Новосибирск
Если ввести букву "в" в combox на листе, то ниже появится список из перечисленных городов. А если эту же букву ввести на useform, то будет только Воркута.
Волгоград
Воркута
Москва
Новосибирск

Вводим следующую букву и combobox на листе показывает города в которых есть совпадения по двум введенным буквам в любом месте названия города - список городов для выбора уменьшается и т.д.
Изменено: dmt. - 14.01.2015 23:44:25
 
Предлагаю вариант с добавлением на форму ТекстБокса: в него вводим символы, а уже по ним заполняется КомбоБокс.
 
Юрий М, а сразу в КомбоБокс разве не получится сделать? на листе ведь КомбоБокс отрабатывает. В 1 и 2 модуле первоначального файла есть код, может быть его как-нибудь изменить?
 
если я правильно поняла, что-то подобное делала на основе листбокса
Работать надо не 12 часов, а головой.
 
Leanna, да, я когда рыскал по просторам интернета, находил что-то похожее, но в итоге остановился на том варианте, который сейчас не могу переделать на useform.
 
"Нажмите на ячейку ниже" я нажимаю, ничего не происходит. Интересно в работающем виде на это посмотреть.
скриншот
Работать надо не 12 часов, а головой.
 
[FILE ID=121748]Leanna, очень странно, после того как Вы встаете на ячейку должен появляться КомбоБокс
 
 
Да, странно, у меня и ошибки не было которая была у CAHO #3
Работать надо не 12 часов, а головой.
 
Leanna, у Вас при открытии файла появляется надпись? Если да, то нужно нажать на разрешить.
Изменено: dmt. - 15.01.2015 00:52:38
 
Нет не вылезает но после повторного открытия вылезла ошибка как у САНО. Закомментировала то что сказал Юрий, все равно ошибка.
Работать надо не 12 часов, а головой.
 
Добрый вечер!
Нашел другой макрос с поиском по вводимым данным. Только единственная проблема в получившемся допустимом списке не получается выбирать значения с использованием стрелки вниз/вверх на клавиатуре. При попытке пройти по подобранному списку с использованием стрелки сразу же принимается первое значение. Помогите, пожалуйста, реализовать возможность выбора строки с использованием стрелки. Спасибо.
 
Да нормально работает. Набрал 2 буквы - появился список. Нажал стрелку вниз и пошел по списку
 
Александр Моторин, добрый вечер! А уменя получается, что принимает первое значение - пробовал в 2007 и 2013 версиях.

Например, набрал "ол" - в списке захотел выбрать "Ольга" - нажал стрелку вниз и появился MSgBox - нажал "Ок" и в КомбоБоксе "Олег".




Изменено: dmt. - 16.01.2015 22:46:17
 
Цитата
Юрий М пишет: Предлагаю вариант с добавлением на форму ТекстБокса: в него вводим символы, а уже по ним заполняется КомбоБокс.
Добрый вечер!
Пытался сделать все в Комбобоксе, но не получилось. От безысходности решил воспользоваться Вашим советом и добавил ТекстБокс, но вместо Комбобокса сделал ЛистБокс. Чтобы более менее привести поиск в нормальный вид возникла потребность скрывать ЛистБокс после выбора соответствующего значения из него. Подскажите, пожалуйста, как можно сделать так, чтобы после нажатия клавиши Ентер в ЛистБоксе, он исчезал. Я пробовал сделать переход на ТекстБокс и чтобы потом отработала процедура выхода из ЛистБокса (и он исчез), но не получается.
Заранее спасибо.
Изменено: dmt. - 18.01.2015 23:20:57
 
Не могу понять, почему появляется ошибка. Прикрутил костыль))
А почему по Enter, а не по клику скрывать? Это ведь лишняя операция.
 
Можно так ещё
Код
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
'Call Процедура
UserForm1.Hide
End If
End Sub
Работать надо не 12 часов, а головой.
 
Всё равно непонятно, что вызывает ошибку. Никогда с таким не сталкивался...
 
Цитата
Юрий М пишет: Прикрутил костыль))
А почему по Enter, а не по клику скрывать? Это ведь лишняя операция.
Спасибо, большое. Честно - ничего не прикручивал) Решил скрывать по enter, так как пользователь перебирать будет с помощью стрелки. Возникла еще одна маленькая проблема, как сделать так, чтобы выбранный с помощью Enter вариант в ЛистБоксе остался в ТекстБоксе?
 
Цитата
dmt. пишет:Честно - ничего не прикручивал
Это я прикрутил))
По вопросу: попробуйте вместо выгрузки использовать скрытие, как предлагает Leanna. Или запоминайте значение в переменную и присваивайте при активации формы.
 
Доброе время суток
Можно и так.
 
Андрей VG, добрый вечер!
Супер, класс, гениально!!! Спасибо!!!
 
Андрей VG,  можете сделать комментарий к коду.
 
Андрей VG, добрый вечер!
Попытался сегодня перенести код в рабочий файл, но появилась ошибка( Попытался банально скопировать листы и форму в новый файл и в новом файле тоже ошибка( Помогите, пожалуйста, разобраться в чем причина. Спасибо!
Изменено: dmt. - 21.01.2015 20:37:42
Страницы: 1 2 След.
Наверх