Как я могу заставить пользовательскую форму завершить другую?

У меня есть пользовательская форма с двумя выпадающими списками. Один из них содержит номера деталей, а другой содержит описания деталей, такие как:

Номер детали: 01982391823

Описание: 5/8 "клапан Festo

У них обоих есть предметы с другого листа (базы данных).

Что я хочу сделать, так это, если я добавлю код в выпадающий список кодов, другой покажет мне соответствующее описание, и наоборот (потому что их около 400). Это возможно?

Всего 1 ответ


Попробуйте код ниже, я предположил, что ваш номер детали находится в столбце A и описание в столбце B.

ComboBox Part Name: cbo_part, ComboBox Desc Имя: cbo_desc

Dim mySh As Worksheet


Private Sub cbo_desc_Change()

If cbo_desc.Value <> "" Then
    'LOOP THRU ALL THE DATABASE AND LOOK FOR THE DESC ROW NUMBER AND GET THE PART
    For a = 2 To mySh.Range("B" & Rows.Count).End(xlUp).Row
        If CStr(mySh.Range("B" & a).Value) = cbo_desc.Value Then
            cbo_part.Value = mySh.Range("A" & a).Value
            Exit For
        End If
    Next a
End If
End Sub

Private Sub cbo_part_Change()

If cbo_part.Value <> "" Then
    'LOOP THRU ALL THE DATABASE AND LOOK FOR THE PART ROW NUMBER AND GET THE DESC
    For a = 2 To mySh.Range("A" & Rows.Count).End(xlUp).Row
        If CStr(mySh.Range("A" & a).Value) = cbo_part.Value Then
            cbo_desc.Value = mySh.Range("B" & a).Value
            Exit For
        End If
    Next a
End If
End Sub

Private Sub UserForm_Initialize()

Set mySh = ThisWorkbook.Sheets("Sheet1") 'name of your worksheet database

'ADD ITEMS TO COMBOBOX PART
With cbo_part
    'Loop thru all the parts and add to the combobox part
    For a = 2 To mySh.Range("A" & Rows.Count).End(xlUp).Row
        cbo_part.AddItem mySh.Range("A" & a).Value
    Next a
End With


'ADD ITEMS TO COMBOBOX DESCRIPTION
With cbo_desc
'Loop thru all the description and add to the combobox description
    For b = 2 To mySh.Range("B" & Rows.Count).End(xlUp).Row
        cbo_desc.AddItem mySh.Range("B" & b).Value
    Next b
End With

End Sub

Есть идеи?

10000