Страницы: 1
RSS
Сдвигается влево текст в combobox при ручном вводе когда текст шире самого combobox
 
Добрый день!
Подскажите пожалуйста что можно сделать с combox чтобы текст не сдвигался влево при ручном вводе.
Дело в том что сам текст намного шире combox, но так и нужно, чтобы лишнее не отображалось пользователю.
Связано это с тем что (как в примере) в разных субъектах РФ есть нас. пункты с одинаковыми названиями.
И после его выбора в combox должна подтягиваться информация о нем через =ВПР.(в примере это тип нас. пункта, ячейка Q2).
Но =ВПР находит только первое значение, поэтому решил приклеить к каждому нас. пункту свой код через "кучу" пробелов как раз для того  чтобы код не отображался в combobox пользователю. Можно что-то с этим сделать?
Или может быть возможно как-то подменять значение combobox, т.е. в списке выбирать наименование нас. пункта, а в связанною ячейку попадал её код?
 
Свойство
Код
ComboBox.Style
установите
Код
=2.fmStyleDropDownList
. М.б. поможет.
"Все гениальное просто, а все простое гениально!!!"
 
К сожалению так не подойдет(
Ручной ввод значений необходимо сохранить.
 
Цитата
GRIM написал:
Ручной ввод значений необходимо сохранить.
А зачем, вводите данные на лист а затем забирайте в ComboBox
"Все гениальное просто, а все простое гениально!!!"
 
Не совсем так....
Я имел ввиду, чтобы поиск по первым буквам работал.
 
Код
ComboBox1.DropDown
"Все гениальное просто, а все простое гениально!!!"
 
Тоже не выходить((
При вводе первых букв только список сам раскрывается, а текст внутри combobox все равно смещается.
 
Может быть подход по приклейке к каждому нас. пункту своего кода через "кучу" пробелов не верный?
Возможно можно сделать как-то по-умнее?
 
:)
 
RAN, в таком случае отображаются все населенные пункты без зависимости от выбранного региона.
В исходном примере в ListFillRange был динамический диапазон "_1". Попробовал вернуть его на место, список стал соответствовать, но Ваш подход к сожалению теперь не работает(((  Причем даже выбрать из списка значение не даёт, при выборе значения мышью combobox остается пустой. А также заметил что если вводить нас. пункт в combobox с клавиатуры, нельзя ввести первую букву с которой он начинается (после ввода любой другой, можно).
 
RAN, прошу прощения! Все получилось!
BoundColumn не поправил, сам виноват.
Спасибо большое!!!
 
Я поторопился :cry:
Не выходит...если меняю BoundColumn на 1 то все нормально, но в значении combobox не уникальное значение, а просто наименование нас. пункта.
 
может с формой попробуете?
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, к сожалению вариант с формой тоже не подойдет.
Кода нас. пункта не должно быть видно в списке дабы не смущать пользователя. А при попытке добавления пробелов, ситуация становится такая же как и раньше. Текст сдвигается(
 
А так?
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, так то что нужно, но только comoboxы нужны на листе, а не на форме.
 
На листе не смогу, там другие свойства, я только с формой могу работать :(. Форму специально делал не модальную, что бы можно было делать правки на листе. так что подумайте м.б. и форма пододет. И по моему форма побыстрее работает с большими файлами нежели ActiveX на листе.
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, в любом случае спасибо Вам большое!
Будет пища для ума.
Но буду надеяться что что есть способ сделать также на листе.
 
вроде что-то получилось!
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, да! это похоже на то что нужно. Только связь ячеек пропадает
зависимый=диапазон
область=нас.пункт
 
Что за связь, там вроде все код делает как в начальном примере. Может я что-то не понимаю?
"Все гениальное просто, а все простое гениально!!!"
 
Когда с клавиатуры вводим нас. пункт то его значение не записывается в связанную ячейку P2
 
Забирайте в КомбоБокс все столбцы, а отображайте только первый. Тогда и ВПР не потребуется, и не нужно будет пробелами прятать "ненужное".
 
Вот простенький пример.
 
Спасибо всем огромное!
Страницы: 1
Читают тему
Наверх