Since you've sorted the data in the combobox you can't use it's ListIndex to find the row of data you want.
You'll need some other method.
Try this which works with your sample data as long as you change the BoundColumn of cboFirstname to 1.
Private Sub cboFirstName_Change()
Dim row_nunber As Integer
If cboFirstName.ListIndex <> -1 Then
row_number = Application.Match(cboFirstName.Value, Worksheets("Address Book").Range("A:A"), 0)
With Worksheets("Address Book")
TextBox1.Text = .Cells(row_number, 1).Value
TextBox2.Text = .Cells(row_number, 2).Value
TextBox3.Text = .Cells(row_number, 3).Value
TextBox4.Text = .Cells(row_number, 4).Value
TextBox5.Text = .Cells(row_number, 5).Value
TextBox6.Text = .Cells(row_number, 6).Value
TextBox7.Text = .Cells(row_number, 7).Value
End With
cboFirstName.SetFocus
End If
End Sub
Bookmarks