Data concatenated from many cells may look nice, but may not be practical when the code continues to work, after choosing in ComboBox. Therefore, I will show you another solution that has its advantages, but also has disadvantages.
Full code in UserForm module:
Option Explicit
Private Sub ComboBox1_Click()
Dim lIdx As Long
With Me.ComboBox1
lIdx = .ListIndex
If lIdx > -1 Then
MsgBox "Your choice:" & vbLf & _
.List(lIdx, 2) & " " & .List(lIdx, 3) & " " & .List(lIdx, 6) & vbLf & _
"who is a " & IIf(.List(lIdx, 1) = "M", "man", "woman") & _
" from state - " & .List(lIdx, 4) & " in " & .List(lIdx, 5)
MsgBox "Combo returns value: " & .Value & vbLf & _
"This is the value from the Ref column, " & _
"not the number of the selected item in the list"
End If
End With
End Sub
Private Sub UserForm_Initialize()
Dim i As Long
Dim rngData As Range
Dim varrData As Variant
Set rngData = Sheet1.Range("A5").CurrentRegion
With rngData
varrData = .Offset(1).Resize(.Rows.Count - 1).Value
End With
With Me.ComboBox1
.RowSource = vbNullString
.ColumnCount = UBound(varrData, 2)
.BoundColumn = 1
.ColumnWidths = "0;0;30;40;0;0"
.List = varrData
End With
End Sub
Artik