Страницы: 1
RSS
Автозаполнение TextBox, Заполнение TextBox значениями из таблицы в зависимости от значения ComboBox
 
Коллеги, добрый день!
Подскажите, пожалуйста, как можно заполнить TextBox значениями из таблицы, в зависимости от того, какое значение выбрано в ComboBox из той же таблицы. Получается, что-то типа ВПР. И в добавок, в списке ComboBox-а есть много повторяющихся значений. Предполагаю, что надо учитывать номер строки выбранного в ComboBox значения, но фантазии не хватает как реализовать идею, да и нигде на просторах интернета ответа не нашёл.
Файл примера по-быстрому сварганил и приложил.
Заранее благодарю! Давно знаю, что здесь помогают, хоть сам обращаюсь за помощью впервые.  :)  
 
Цитата
ArtKEXcel написал:
Получается, что-то типа ВПР. И в добавок, в списке ComboBox-а есть много повторяющихся значений.
Типа ВПР() - это выбирать 1-е значение из повторяющихся? ВПР так работает
Согласие есть продукт при полном непротивлении сторон
 
ArtKEXcel, Доброго времени суток. Если я вас правильно понял
Цитата
ArtKEXcel написал:
в зависимости от того, какое значение выбрано в ComboBox из той же таблицы
то ниже один из вариантов предлагаю:
Код
Option Explicit

' Событие изменения ComboBox
Private Sub ComboBox1_Change()
    Dim iValue      As Long: iValue = ComboBox1.List(ComboBox1.ListIndex, 1)
    Dim sh          As Worksheet: Set sh = ThisWorkbook.Worksheets("Список")

    TextBox1.Value = sh.Cells(iValue, 2).Value
    TextBox2.Value = sh.Cells(iValue, 3).Value
End Sub

' Это событие возникает при запуске формы
Private Sub UserForm_Initialize()
    Dim lastrow     As Long
    Dim i           As Long
    Dim sh          As Worksheet: Set sh = ThisWorkbook.Worksheets("Список")

    With sh
        lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Me.ComboBox1.Clear

        ' Заполняем ComboBox значениями и индексами строк
        For i = 2 To lastrow
            Me.ComboBox1.AddItem .Cells(i, 1).Value
            Me.ComboBox1.List(Me.ComboBox1.ListCount - 1, 1) = i
        Next i

    End With

End Sub
Может быть я и не правильно вас понял, времена нынче такие... Удачи.
 
Цитата
написал:
ВПР так работает
Не ВПР, конечно же, а типа ВПР, если бы не было повторяющихся значений.
 
Цитата
Изменено: ArtKEXcel - 08.06.2024 07:50:30
 
MikeVol, Поняли меня правильно. Огромное спасибо!
 
Цитата
ArtKEXcel написал:
если бы не было повторяющихся значений
П.С. Дубликаты в КомбоБокс - прямая дорога к ошибкам.
Лучше сделать два зависимых КомбоБокса и один ТекстБокс. В 1-ом выбираем Имя. В зависимости от выбранного имени заполняется 2-ой КомбоБокс. Или Номерами или Датами. Во втором выбираем нужный Номер/Дату, и, уже исходя из этих двух условий, в ТекстБокс получаем третье значение.
Ну это так, заметки на полях
Согласие есть продукт при полном непротивлении сторон
 
Sanja, Да, я понимаю, о чём вы говорите. Ошибки будут в случае выбора неправильного варианта из двух и более одинаковых значений.
Меня устраивает предложенный вариант. Но есть некоторые "но". Список имён будет расти до бесконечности, а меня устроило бы, если бы список отображался не полный, а только последние 5 значений и при чём, в обратной последовательности, от последнего к предыдущим. Как это сделать тоже не знаю.))) Похоже, воспользуюсь помощью знатоков ещё раз.
Страницы: 1
Наверх