Здравствуйте. Помогите с решением задачи. Есть форма и на ней 2 combobox и 4 textbox. Combobox заполняются значениями с листа в неограниченном количестве. Задача: в зависимости от выбранных аргументов\значений по ListIndex в выпадающем списке на форме необходимо выбрать значение из столбцов на листе1 и вставить в текстовое поле на форме. Как-то так. Пример:Если в Combobox1 выбран аргумент\значение 2,а в Combobox2 выбран аргумент\значение 3, то значит в textbox4 вставляется из столбца "D" кабинет "кабинет тех", а в TextBox3 из столбца соответственно "С" двери "стеклянные", и т.д. На форуме искал подобное не нашел, если знаете где лежит ответ, дайте ссылку. Спасибо.
Здравствуйте. Помогите с решением задачи. Есть форма и на ней 2 combobox и 4 textbox. Combobox заполняются значениями с листа в неограниченном количестве. Задача: в зависимости от выбранных аргументов\значений по ListIndex в выпадающем списке на форме необходимо выбрать значение из столбцов на листе1 и вставить в текстовое поле на форме. Как-то так. Пример:Если в Combobox1 выбран аргумент\значение 2,а в Combobox2 выбран аргумент\значение 3, то значит в textbox4 вставляется из столбца "D" кабинет "кабинет тех", а в TextBox3 из столбца соответственно "С" двери "стеклянные", и т.д. На форуме искал подобное не нашел, если знаете где лежит ответ, дайте ссылку. Спасибо.Liberia
Liberia, зачем Вы по 2 раза комбобоксы заполняете? При инициализации формы вполне достаточно. Если правильно поняла: [vba]
Код
Private Sub ComboBox1_Change() 'ComboBox1.List = Array("Кабинет1", "Кабинет2", "Кабинет3") 'любое количество аргументов fillForm End Sub Private Sub ComboBox2_Change() 'ComboBox2.List = Array("Окно", "Дверь", "Стол") 'любое количество аргументов fillForm End Sub
[/vba] [vba]
Код
Sub fillForm() Dim r% If ComboBox1 <> "" And ComboBox2 <> "" Then r = ComboBox1.ListIndex + 1 With ThisWorkbook.Sheets(1) TextBox1 = .Cells(r, 1) TextBox2 = .Cells(r, 2) TextBox3 = .Cells(r, 3) TextBox4 = .Cells(r, 4) End With End If End Sub
[/vba]
Liberia, зачем Вы по 2 раза комбобоксы заполняете? При инициализации формы вполне достаточно. Если правильно поняла: [vba]
Код
Private Sub ComboBox1_Change() 'ComboBox1.List = Array("Кабинет1", "Кабинет2", "Кабинет3") 'любое количество аргументов fillForm End Sub Private Sub ComboBox2_Change() 'ComboBox2.List = Array("Окно", "Дверь", "Стол") 'любое количество аргументов fillForm End Sub
[/vba] [vba]
Код
Sub fillForm() Dim r% If ComboBox1 <> "" And ComboBox2 <> "" Then r = ComboBox1.ListIndex + 1 With ThisWorkbook.Sheets(1) TextBox1 = .Cells(r, 1) TextBox2 = .Cells(r, 2) TextBox3 = .Cells(r, 3) TextBox4 = .Cells(r, 4) End With End If End Sub
Спасибо. Я строитель, а не писатель программ. Вот приходится немного программировать, чтобы вести учет. Еще раз спасибо за подсказку. Буду дальше лепить.
Спасибо. Я строитель, а не писатель программ. Вот приходится немного программировать, чтобы вести учет. Еще раз спасибо за подсказку. Буду дальше лепить.Liberia