Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column > 1 Or ActiveCell.Row = 1 Then ListBox1.Visible = False: Exit Sub
Dim i&
For i = 0 To ListBox1.ListCount - 1
ListBox1.Selected(i) = False
Next
ListBox1.Top = ActiveCell.Top
ListBox1.Left = ActiveCell(1, 2).Left
ListBox1.Visible = True
End Sub
Private Sub ListBox1_Change()
Dim i&, a(), n&
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
ReDim Preserve a(n)
a(n) = ListBox1.List(i, 0)
n = n + 1
End If
Next
ActiveCell = Join(a, "-")
End Sub