Страницы: 1
RSS
Динамический диапазон для ActiveX, Выпадающий список с наполнением
 
Доброго времени суток Excelпланетяне. C наступающими праздниками!

Так как вопрос общего характера и файла еще как бы нет, то собственно его и не прилагаю. Но если надо будет, быстренько накидаю.
Есть(т.е. будет) на листе таблица с клиентами и элемент ActiveX поле со списком, тоже на листе.
В свойсте ListFillRange прописан статический диапазон клиентов. Но так как список клиентов будет пополнятся, возможно ли прописать как-то в свойстве динамический диапазон, чтобы при пополнении диапазона, новая запись автоматически появлялась в Combobox. По этой теме ничего не нашел.
Есть ли какой-то выход. Может какой-то альтернативный вариант подскажите. Выпадающий список через Проверку данных не подходит, так как список клиентов довольно таки большой, а выпадающий список всего 8 строк - неудобно.
 
Почитайте справку по: динамический именованный диапазон. Или макросом. Надежней  :)
Изменено: KuklP - 30.12.2013 22:25:11
Я сам - дурнее всякого примера! ...
 
Да я уже по динамическому диапазону то справку прочитал. Уже формулы разные пробовал для динамического диапазона. Диапазон то есть, а вот назначить его для ActiveX не получается, что-то не работает. А макросы только осваиваю и до этого уровня еще не дошел.
 
Код в модуле листа, на котором размещен комбобокс:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  With ComboBox1
    .ListFillRange = .ListFillRange
  End With
End Sub
 
 
Ухты, ничего себе  :o  , работает. Вроде такой простой код, а весь нет облазил и ничего подобного не нашел. Может неправильно формулировал вопрос. Хотя на планете сразу поняли.
Спасибо ZVI
 
В свойствах для ComboBox ActiveX в поле источника заполнения ListFillRange невозможно было указать динамический именованный диапазон, определенный через СМЕЩ() столбца "умной таблицы". Решением оказалось создание в диспетчере имен новой переменной с присвоением имени динамического диапазона.

Именованный динамический диапазон Подразделения =СМЕЩ(Т_Подразделения[Подразделение];0;;СЧЁТЗ(Т_Подразделения[Подразделение])), где Т_Подразделения[Подразделение] - столбец таблицы

Новое имя  DEPARTMENTS присваивает значения диапазона Подразделения и именно оно указывается в поле свойств ComboBox ListFillRange.



UPD
Добавить событие на кнопку в коде листа расположения

Private Sub cbx_Deparment_GotFocus()
   cbx_Deparment.ListFillRange = "=DEPARTMENTS"
End Sub
Изменено: Gromus - 12.12.2022 23:00:36
Страницы: 1
Наверх