Страницы: 1
RSS
Зависимые комбобоксы
 
Уважаемы специалисты!
Помогите, пожалуйста, разобраться с зависимыми выпадающими списками.
В частности, в примере хотел бы выбирать менеджеров только работающих в конкретном магазине, а бренд - только закрепленный за конкретным менеджером соответственно, а не общими списками.
В vba делаю первые маленькие шажки, на бейте сильно)))
а потом хочу результат складывать на лист Результат. Помогите плиз!))) Спасибо.
 
Пример на словарях.
 
kalbasiatka, спасибо большое. пытаюсь разобраться. А как брать данные с другого листа, подскажите, плиз?
 
для ваших arr добавьте нужный лист Sheets("Имя нужного листа")......
 
Уважаемый V,
Так:
Код
arr = Sheets("Лист2").Range(Cells(2, 1), Cells(Rows.Count, "A").End(xlUp)).Value 
не проходит
 
Код
With Sheets("Лист1")
        arr = .Range(.Cells(2, 1), .Cells(Rows.Count, "A").End(xlUp)).Value
    End With




 
Спасибо, Юрий!))
 
Юрий, добрый день!
мучился-мучился, нервы сдали - опять решил обратиться.
Когда запускаешь форму с Лист1, то никаких проблем,
А мне надо ее запустить с Лист3. Вот тут ничего не получается...
Помогите, плиз. Как выбрать данные для комбобоксов из конкретного листа в моем примере?
 
Вы невнимательно смотрели код в #6 - обратите внимание на ТОЧКИ (Инициализация):
Код
    With Sheets("Лист1")
        arr = .Range(.Cells(2, 1), .Cells(Rows.Count, "A").End(xlUp)).Value
    End With
 
Юрий, спасибо огромное!!!!)))))))
 
И в процедурах Change не забудьте))
 
Уважаемые знатоки!)
Никак не могу разобраться, почему же не работает.
Где-то раельно туплю. Мне уже и здесь подсказывали, и Юрий М помогал, а все равно не соображу.

Выбираю менеджера, появляются бренды - все ок.
Выбираю бренд, дальше затык!

Прошу помочь:
Нужно, чтобы каждый следующий список в комбобоксе зависел от выбранных значений во всех предыдущих.
Заранее спасибо.
 
...может кто-то спасет?))))
 
смотрите:
Код
Private Sub cmbxManager_Change() ' Отслеживаем выбор в комбобоксе Менеджеры
    With Sheets("СписокАС")
        arr = .Range(.Cells(2, 3), .Cells(Rows.Count, "B").End(xlUp)).Value ' здесь в массив идет диапазон "C2:B586"
    End With

Вот эта часть .Cells(2, 3) обозначает ячейку C2 (2 строка, 3 столбец)
то есть берутся два столбца: Менеджеры и Бренды (хотя для этой процедуры вам нужен всего один, по логике дальнейших событий)

а здесь
Код
Private Sub cmbxBrand_Change() ' Отслеживаем выбор в комбобоксе Бренды
    With Sheets("СписокАС")
    arr = .Range(.Cells(2, 3), .Cells(Rows.Count, "C").End(xlUp)).Value ' здесь в массив идет диапазон "C2:C586"
    End With

уже всего один столбец в массив попал - Бренды, в массиве он имеет номер 1. Но вы считаете, что туда попали опять два столбца - Менеджеры и Бренды, и пытаетесь сверить список брендов со значением комбо "Менеджеры".
И дальше в холдингах то же самое, даже хуже - берете в массив диапазон C : D, а работаете с ним, как с массивом из 3 столбцов - B : D

Боитесь запутаться - берите лучше сразу все три столбца Менеджер, Бренд, Холдинг в массив, и тогда у них будут одинаковые номера, и всегда 1-м будут менеджеры, 2-м бренды и 3-м - холдинги. Либо, раз у вас там вумная таблица, обращайтесь к ее столбцам через объект ListObject, хоть по именам, хоть по номерам
Изменено: Максим Зеленский - 18.03.2015 09:31:52
F1 творит чудеса
 
Максим, спасибо Вам огромное!!!!!!
Вы помогли мне победить эти массивы - Вы очень понятно все объяснили!)))))))
Страницы: 1
Наверх