У меня есть пользовательская форма с двумя выпадающими списками. Один из них содержит номера деталей, а другой содержит описания деталей, такие как:
Номер детали: 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