Страница: 1 |
Страница: 1 |
Вопрос: ComboBox и Label
Добавлено: 15.12.08 23:00
Автор вопроса: Irina
Прочитала много, но так ничего и не получилось. Подскажите, пожалуйста. На форме я создала ComboBox1 и Label1. На листе1 имеется 2 столбца: 1- наименование, 2- количество. В ComboBox1 у меня выбирается наименование, а в как сделать чтобы в Label1 у меня автоматически проставлялось количество в соответствии с наименованием?
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #1
Добавлено: 15.12.08 23:41
При событии Change обращайтесь к ячейке с номером строки ListIndex или как-то так. Идея такова: просто смотрите, элемент с каким номером выбран, и обращаетесь к соответствуюшей ячейке.
Номер ответа: 2
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #2
Добавлено: 16.12.08 09:08
А еще можно сделать вот так.
У ComboBox1 на форме в свойстве ColumnCount указать количество столбцов (В данном случае 2). В свойстве RowSource указать диапазон значений. Например: А2:А5. В свойстве ColumnWidths указать ширину столбцов, через ; -> 30 pt;30 pt
В событии Change у ComboBox1 написать
Работает.
Номер ответа: 3
Автор ответа:
Irina
Вопросов: 1
Ответов: 2
Профиль | | #3
Добавлено: 16.12.08 22:14
Я попробовала как вы мне написали, но он ругается.
Если я ввожу RowSource, то он пишет ошибка Load UserForm1
А если без RowSource, то ошибка в строке:
Label1.Caption = ComboBox1.Column(1), где
ComboBox1.Column=Null
Номер ответа: 4
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #4
Добавлено: 17.12.08 11:35
Столбцы с данными рядом находятся ? Например: данные по названиям находятся в ячейках А2:А5. Данные по количеству находятся в ячейках B2:B5. В RowSource пишем: A2:B5. Ширина по 30. Количество столбцов: 2.
Если данных много по столбцам, можно указать в RowSource весь диапазон, количество столбцов на весь диапазон, а ширину столбцов поставить 0. Например, 4 столбца данных, видны только 1 и 4: 30 pt;0 pt;0 pt;30 pt
Номер ответа: 5
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #5
Добавлено: 17.12.08 12:24
Народ, да что же вы делаете? Какая вторая колонка? Всё проще простого:
Номер ответа: 6
Автор ответа:
Irina
Вопросов: 1
Ответов: 2
Профиль | | #6
Добавлено: 17.12.08 19:44
Это у меня получилось. Спасибо. Только теперь у меня проблема в том, что активный лист у меня -Лист2, а данные для ComboBox1 находятся на Лист1. Если я нахожусь на Лист2 тогда в ComboBox1 отражаются данные с Лист2, а не Лист1. А вот в Label1 правильно отражаются данные с Лист1(если считать по порядку выбора). Вот мой код:
Dim rng3 As Range
Private Sub ComboBox12_Change()
Label1.Caption = rng3(ComboBox1.ListIndex + 1, 2).Value
End Sub
Private Sub UserForm_Initialize()
Set rng3 = ThisWorkbook.Worksheets("Лист1".Range("B2:C7"
ComboBox1.RowSource = rng3.Columns(1).Address(False, False)
End Sub
Номер ответа: 7
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #7
Добавлено: 17.12.08 20:07
Упс, это я ступил
Номер ответа: 8
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #8
Добавлено: 18.12.08 08:46
Ну так у меня тоже самое делает. Только привязано все к ComboBox1. И значение в Label1 чиатется оттуда же.
Номер ответа: 9
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #9
Добавлено: 18.12.08 21:55
Jasmin, это Ваш вариант. Я же считаю это неоправданным с точки зрения программирования
Номер ответа: 10
Автор ответа:
Programmer
Вопросов: 0
Ответов: 1
Профиль | | #10
Добавлено: 08.01.09 14:50
Вопрос!
Как вывести количество файлов через Label, и эти же файлы вывести в StaticText&
Номер ответа: 11
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #11
Добавлено: 08.01.09 21:54
Programmer, во-первых, новую тему создай, а во-вторых, конкретнее