Здравствуйте уважаемые гуру Excel! Возникла небольшая проблема, но никак не могу её решить. Суть заключается в том, что при выборе (ComboBox1) марки автомобиля (колонка A), в ComboBox2 должны появиться варианты модели автомобиля выбранной марки (при сопоставлении колонок C и D). Заранее благодарен!!!
Здравствуйте уважаемые гуру Excel! Возникла небольшая проблема, но никак не могу её решить. Суть заключается в том, что при выборе (ComboBox1) марки автомобиля (колонка A), в ComboBox2 должны появиться варианты модели автомобиля выбранной марки (при сопоставлении колонок C и D). Заранее благодарен!!!4lasa
Me.ComboBox2.Clear If Me.ComboBox1.ListIndex=-1 Then Exit Sub 'Me.ComboBox2.Enabled=True 'По фэншую Me.ComboBox2 должен быть запрещён по умолчанию, при конструировании формы rws=Columns(3).Find(Me.ComboBox1.Value).Row Do While Cells(rws,3).Value=Me.ComboBox1.Value With Me.ComboBox2 .AddItem .List(.ListCount-1,0)=Cells(rws,4).Value End With rws=rws+1 Loop End Sub
[/vba]Но это не тестировано, дома на Винду перезагружаться лень...
[vba]
Код
Private Sub ComboBox1_Change Dim rws As Integer
Me.ComboBox2.Clear If Me.ComboBox1.ListIndex=-1 Then Exit Sub 'Me.ComboBox2.Enabled=True 'По фэншую Me.ComboBox2 должен быть запрещён по умолчанию, при конструировании формы rws=Columns(3).Find(Me.ComboBox1.Value).Row Do While Cells(rws,3).Value=Me.ComboBox1.Value With Me.ComboBox2 .AddItem .List(.ListCount-1,0)=Cells(rws,4).Value End With rws=rws+1 Loop End Sub
[/vba]Но это не тестировано, дома на Винду перезагружаться лень...StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Сообщение отредактировал StoTisteg - Воскресенье, 02.12.2018, 20:37
Kuzmich, это уже проблема файла-примера. Можно, конечно, обработчик ошибок прикрутить...[vba]
Код
Private Sub ComboBox1_Change
Dim rws As Integer
Me.ComboBox2.Clear If Me.ComboBox1.ListIndex=-1 Then Exit Sub 'Me.ComboBox2.Enabled=True 'По фэншую Me.ComboBox2 должен быть запрещён по умолчанию, при конструировании формы Err.Clear On Error Resume Next rws=Columns(3).Find(Me.ComboBox1.Value).Row If Err.Number<>0 Then MsgBox "Вах, дарагой! " & Me.ComboBox1.Value & " угнали, да!" Exit Sub End If Do While Cells(rws,3).Value=Me.ComboBox1.Value With Me.ComboBox2 .AddItem .List(.ListCount-1,0)=Cells(rws,4).Value End With rws=rws+1 Loop
End Sub
[/vba]
Kuzmich, это уже проблема файла-примера. Можно, конечно, обработчик ошибок прикрутить...[vba]
Код
Private Sub ComboBox1_Change
Dim rws As Integer
Me.ComboBox2.Clear If Me.ComboBox1.ListIndex=-1 Then Exit Sub 'Me.ComboBox2.Enabled=True 'По фэншую Me.ComboBox2 должен быть запрещён по умолчанию, при конструировании формы Err.Clear On Error Resume Next rws=Columns(3).Find(Me.ComboBox1.Value).Row If Err.Number<>0 Then MsgBox "Вах, дарагой! " & Me.ComboBox1.Value & " угнали, да!" Exit Sub End If Do While Cells(rws,3).Value=Me.ComboBox1.Value With Me.ComboBox2 .AddItem .List(.ListCount-1,0)=Cells(rws,4).Value End With rws=rws+1 Loop
4lasa, у Вас как-то странно данные организованы... Я бы сделал список марок скрытым листом2, списки моделей - на каждую марку отдельный скрытый лист, а юзверю вообще показывал бы на Листе1 большую кнопку "СДЕЛАТЬ ЗАШИБИСЬ"...
4lasa, у Вас как-то странно данные организованы... Я бы сделал список марок скрытым листом2, списки моделей - на каждую марку отдельный скрытый лист, а юзверю вообще показывал бы на Листе1 большую кнопку "СДЕЛАТЬ ЗАШИБИСЬ"...StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.