На главной форме на странице "Заказ у поставщика по договору" есть сomboBox "Поставщик" (cbx_OrderSuppl). В это поле попадает поставщик, у которого есть указанный в сomboBox "Медикаменты" (cbx_MainNameMedic) медикамент. Указанный поставщик берется из таблицы "Договоры_tb" на странице "Медикаменты" из столбца "Поставщик". Я знаю как найти медкамент, который был выбран ранее и отобразить одного поставщика без каких-либо дополнительных условий. А как сделать так, что бы в случае, если этот медикамент есть у нескольких поставщиков, то в сomboBox'е "Поставщик" (cbx_OrderSuppl) появлялась возможность выбора из этих поставщиков, при условии, что у них в столбце "остаток" цифра больше нуля?
В http://www.excelworld.ru/forum/10-38516-1 теме Уважаемый Борода уже делал такое, но с помощью формул и макроса, но я не понимаю как сделанное перенести в userfom'у.
Очень надеюсь, что понятно объяснил
Добрый день!
На главной форме на странице "Заказ у поставщика по договору" есть сomboBox "Поставщик" (cbx_OrderSuppl). В это поле попадает поставщик, у которого есть указанный в сomboBox "Медикаменты" (cbx_MainNameMedic) медикамент. Указанный поставщик берется из таблицы "Договоры_tb" на странице "Медикаменты" из столбца "Поставщик". Я знаю как найти медкамент, который был выбран ранее и отобразить одного поставщика без каких-либо дополнительных условий. А как сделать так, что бы в случае, если этот медикамент есть у нескольких поставщиков, то в сomboBox'е "Поставщик" (cbx_OrderSuppl) появлялась возможность выбора из этих поставщиков, при условии, что у них в столбце "остаток" цифра больше нуля?
В http://www.excelworld.ru/forum/10-38516-1 теме Уважаемый Борода уже делал такое, но с помощью формул и макроса, но я не понимаю как сделанное перенести в userfom'у.
Private Sub cbx_MainNameMedic_Change() Dim ar, i cbx_OrderSuppl.Clear If cbx_MainNameMedic.Value = "" Then Exit Sub ar = Range("Договоры_tb") For i = 1 To UBound(ar) If ar(i, 1) = cbx_MainNameMedic.Value Then If ar(i, 9) > 0 Then cbx_OrderSuppl.AddItem ar(i, 2) End If End If Next i End Sub
Private Sub cbx_MainNameMedic_Change() Dim ar, i cbx_OrderSuppl.Clear If cbx_MainNameMedic.Value = "" Then Exit Sub ar = Range("Договоры_tb") For i = 1 To UBound(ar) If ar(i, 1) = cbx_MainNameMedic.Value Then If ar(i, 9) > 0 Then cbx_OrderSuppl.AddItem ar(i, 2) End If End If Next i End Sub