Страницы: 1
RSS
Заполнить ComboBox значениями из первого столбца умной таблицы.
 
Добрый день, Уважаемые!

Буду краток. Пример во вложении.
Не могу придумать, как заполнить ComboBox значениями из первого столбца умной таблицы. Естественно если в таблице увеличивается количество строк, надо, что бы и в ComboBox так же увеличивалось количество строк.
И второй момент. После того, как в ComboBox выбрано одно из значений, это значение нужно использовать для поиска в той же умной таблице и при нахождении этого значения в таблице в 1 столбце, взять значение из второго столбца и поместить в текстовое поле.

Спасибо большое за понимание, содействие и не ругайте сильно.
 
Код
Dim a()
a = Range("Таблица1[Столбец1]").Value
    UserForm.ComboBox1.List = a 
 
См. вариант. Но можно ещё проще: в КомбоБокс писать 2 столбца (столбцы А и В), и в ТекстБокс выводить значение второго.
 
V, или я что то не так делаю, или не работает
 
смотрите.
 
V, Судя по всему у меня не работает по той причине, что умная таблица у меня на другой вкладке (странице) с названием "СПИСКИ".
Так ли это?
Как указать, на какой вкладке (Странице) расположена умная таблица*
 
Allleksey, мой вариант пробовали?
 
Юрий М, Ваш вариант посмотрел. Работает отлично. Но вот в коде разобраться у меня не получилось :(
Не нашел где ссылка на умную таблицу...

Как было где то на форуме написано "я балуюсь с макросами около недели"... так вот я с ними балуюсь и того меньше. Опыт, можно сказать, нулевой. Я не волшебник, я только учусь (С)
 
Цитата
Allleksey написал:
Не нашел где ссылка на умную таблицу
А её и нет - я просто перебираю диапазон.
 
Юрий М,
А если на пользовательском поле 3 поля со списком. Каждое заполняется из своей умной таблицы? И в каждой таблице так же производится поиск? У меня в планах помещение около 15 полей со списком.

Цитата
V написал:
смотрите.

Заработало!!! Нашел причину ошибки. Спасибо! Заполнять поля со списком из умных таблиц я научился (точнее меня научили). Теперь надо научиться осуществлять поиск по умным таблицам.
Изменено: Allleksey - 01.11.2018 18:36:58
 
"Пользовательское поле" - форма? )) Можно и три. А можно и один КомбоБокс заполнять разными данными. Всё зависит от задачи.
Но 15 КомбоБоксов - это прикольно )
 
Цитата
Юрий М написал: "Пользовательское поле"
UserForm

Цитата
Юрий М написал: Но 15 КомбоБоксов - это прикольно )
Возможно есть и другой вариант запроса такого количества данных, но пока я его не придумал.

Цитата
V написал: смотрите.
Анннн нет, не заработало. Пишет
Цитата
Method 'Range' of object '_global' failed
На что он ругается?
Изменено: Allleksey - 01.11.2018 22:46:14
 
Цитата
Юрий М написал:
Allleksey , мой вариант пробовали?
Добрый день, Юрий!
помогите пожалуйста....! Аналогичный пример...
Нужно для соответствующего выбранного значения в поле ComboBox1 формы UserForm1P в поля TextBox2 TextBox3 добавлялись соответствующие значения из таблицы 2 на листе "Склад". Пробовал адаптировать Ваш пример из предыдущих постов, но не получается... что-то делаю не так, а что не могу понять... (вернее знаний не хватает!). Буду очень признателен если объясните в чем проблема.. Ну или кто-нибудь подскажет, кто разобрался в этой теме....)
Изменено: Mikeger - 01.07.2020 08:50:55
 
Файл Ваш глючный и много лишнего. Поэтому набросал небольшой  свой примерчик.  :)  
 
Спасибо, Logistic... все работает....! Просто пытался адаптировать вариант Юрия.... с переборкой диапазонов, т.к. не нашел ничего лучше (но разобраться не смог)... но ваш гораздо проще и понятней для начинающих балбесов, вроде меня...!
 
Цитата
Logistic написал:
Файл Ваш глючный и много лишнего. Поэтому набросал небольшой  свой примерчик.    
Если оставить одну запись то появляется ошибка !!!
 
Цитата
Lil Rock написал:
Если оставить одну запись то появляется ошибка
потому что там уже не массив получается. Надо обрабатывать:
Код
Private Sub UserForm_Initialize()
    Dim a
    With Sheets("Лист2")
        a = .Range("B4", .Cells(Rows.Count, "B").End(xlUp)).Value
        If Not IsArray(a) Then
            ReDim a(1 To 1)
            a(1) = .Range("B4").Value
        End If
    End With
    Me.ComboBox1.List = a
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх