I am not sure if this helps, but you could use a drop down list and use the Multi-Select option.
The Drop-down is a List Box and in Properties Change 'MultiSelect' to option 2 'fmMultiSelectExtended'
The list box has 'ListFillRange' set to a named range which contains the parts list relevant to the engine.
The user can select from the list using the usual selection procedures, such as holding down Ctrl key to make multiple selections, or using shift to select a continuous range of items in the list.
The following code retrieves the selected items and for this demo displays them in a message box.
The message box is displayed when the List box loses focus, e.g., when the user selects a cell or another object on the worksheet.
The List box was named ListBox1, change the code if the ListBox was named something else.
The code can be used to transfer the list into cells on another worksheet rather than creating a text string for the display.
Private Sub ListBox1_LostFocus()
Dim strList As String
Dim strSngMult As String
Dim strResp As String
Dim intSelCnt As Integer
Dim n As Integer
'counter to count selected items
intSelCnt = 0
'get selected items
For n = 0 To .ListCount - 1
If .Selected(n) = True Then
strList = strList & .List(n) & vbCrLf
intSelCnt = intSelCnt + 1
'set message single or multiple
If intSelCnt = 1 Then
strSngMult = "This item was selected:"
strSngMult = "These items were selected:"
'display selected items
strResp = MsgBox(strSngMult & vbCrLf & strList, vbOKOnly, _
"Selected Items in Text Box 1")