Необходимо чтобы при выборе значения в комбобоксе, автоматически подставлялось значение из листа в текстбокс. Пример во вложении.
Связанный выпадающий список
28.12.2010 00:08:01
|
|
|
|
28.12.2010 00:28:55
Или так.
|
|
|
|
28.12.2010 00:37:20
А можно как то ограничить поиск по столбцу А? Например до 5 строки.
|
|
|
|
28.12.2010 00:40:23
{quote}{login=DOR}{date=28.12.2010 12:37}{thema=}{post}А можно как то ограничить поиск по столбцу А? Например до 5 строки.{/post}{/quote}
Можно - указав не столбец целиком, а диапазон ячеек, как это сделано у Казанского. |
|
|
|
28.12.2010 00:44:41
Походу, короче уже не получится :)
В св-вах комбобокса Boundcolumn=2 Private Sub ComboBox1_Change() TextBox1 = ComboBox1 End Sub Private Sub UserForm_Initialize() ComboBox1.RowSource = "A1:B" & Cells(Rows.Count, 1).End(xlUp).Row End Sub |
|
|
|
28.12.2010 00:48:26
Однако можно :)
Private Sub ComboBox1_Change() TextBox1 = ComboBox1 End Sub Private Sub UserForm_Initialize() ComboBox1.RowSource = [A1].CurrentRegion.Address End Sub |
|
|
|
28.12.2010 00:54:23
{quote}{login=Казанский}{date=28.12.2010 12:48}{thema=}{post}Однако можно :){/post}{/quote}
Тогда вообще инициализацию убираем, а RowSource в свойствах :-) |
|
|
|
28.12.2010 19:16:52
Ух сколько решений, спасибо всем кто предложил свои варианты.
P.S. Прошу прощения за не совсем правильную формулировку вопроса. |
|
|
|
28.12.2010 20:27:23
Как тут:
Private Sub ComboBox1_Change() TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1) End Sub Private Sub UserForm_Initialize() ComboBox1.List = [a1:b5].Value End Sub или тут: Private Sub ComboBox1_Change() TextBox1 = ComboBox1 End Sub Private Sub UserForm_Initialize() ComboBox1.RowSource = [A1].CurrentRegion.Address End Sub можно заставить выбирать нужные данные с листа "Списки"? |
|
|
|
28.12.2010 20:38:47
А еще задать условие, что есть Sheets("Списки").Cells("D1") = "К", то выбираем столбец B, иначе С.
|
|
|
|
28.12.2010 21:02:19
{quote}{login=DOR}{date=28.12.2010 08:27}{thema=}{post}Как тут:
Private Sub ComboBox1_Change() TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1) End Sub Private Sub UserForm_Initialize() ComboBox1.List = [a1:b5].Value End Sub или тут: Private Sub ComboBox1_Change() TextBox1 = ComboBox1 End Sub Private Sub UserForm_Initialize() ComboBox1.RowSource = [A1].CurrentRegion.Address End Sub можно заставить выбирать нужные данные с листа "Списки"?{/post}{/quote} Разобрался сам. |
|
|
|
28.12.2010 21:33:56
Private Sub UserForm_Initialize()
If Sheets("Списки").Range("D1") = "К" Then ComboBox2.List = Sheets("Списки").Range("a2:b24").Value Else ComboBox2.List = Sheets("Списки").Range("a1:c24").Value End If End Sub как отсюда ComboBox2.List = Sheets("Списки").Range("a1:c24").Value исключить столбец "В"? |
|
|
|
28.12.2010 22:11:15
ComboBox2.List = union(Sheets("Списки").Range("a1:a24"),Sheets("Списки").Range("c1:c24")).value
|
|||
|
|
28.12.2010 22:17:18
используйте
with Private Sub UserForm_Initialize() with Sheets("Списки") If .Range("D1") = "К" Then ComboBox2.List = .Range("a2:b24").Value Else ComboBox2.List = union(.Range("a1:a24"),.Range("c1:c24")).value End If end with End Sub
|
|||
|
|
28.12.2010 22:17:54
Это полностью код:
Private Sub ComboBox2_Change() TextBox13 = ComboBox2.List(ComboBox2.ListIndex, 1) End Sub Private Sub UserForm_Initialize() If Sheets("Списки").Range("D1") = "К" Then ComboBox2.List = Sheets("Списки").Range("a2:b24").Value Else ComboBox2.List = Union(Sheets("Списки").Range("a1:a24"), Sheets("Списки").Range("c1:c24")).Value End If End Sub R Dmitry, после добавления ComboBox2.List = union(Sheets("Списки").Range("a1:a24"),Sheets("Списки").Range("c1:c24")).value код стал ругаться на это TextBox13 = ComboBox2.List(ComboBox2.ListIndex, 1) |
|
|
|
28.12.2010 22:22:02
может быть не пробовал:)
оставьте свой вариант и замените 1 на 2 TextBox13 = ComboBox2.List(ComboBox2.ListIndex, 1) TextBox13 = ComboBox2.List(ComboBox2.ListIndex, 2)
|
|||
|
|
28.12.2010 22:31:56
тоже ошибка.
|
|
|
|
28.12.2010 22:38:27
{quote}{login=DOR}{date=28.12.2010 10:31}{thema=}{post}тоже ошибка.{/post}{/quote}
так я ж Вам написал оставьте полностью свой код, и поменяйте только одну цифру
|
|||
|
|
28.12.2010 22:43:30
Оставлял, все равно ошибка :)
|
|
|
|
28.12.2010 22:44:53
Private Sub ComboBox1_Change()
If Sheets("Лист1").Range("C1") = "K" Then TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1) Else TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 2) End If End Sub Private Sub UserForm_Initialize() ComboBox1.List = Sheets("Лист1").Range("a1:c5").Value End Sub
|
|||
|
|
28.12.2010 22:47:45
Вот блин, хотел ведь так написать. Спасибо, R Dmitry.
|
||||
|
|
|||
Читают тему