Do you also have a unique list of the companies?
If you do then you should populate the first combobox using that.
Then when a company is selected you can simply go down the contact list checking the company name.
If it matches the selected company add it to the contacts combobox.
Code:
Private Sub cboCompanyName_Change()
Dim rngCompany As Range
Dim rngList As Range
Dim strSelected As String
Dim LastRow As Long
' check that a company has been selected
If cboCompanyName.ListIndex <>-1 Then
strSelected = cboCompanyName.Value
LastRow = Worksheets("ListData").Range("A" & Rows.Count).End(xlUp).Row
Set rngList = Worksheets("ListData").Range("A2:A" & LastRow)
For Each rngCompany In rngList
If rngCompany.Value = strSelected Then
cboContacts.AddItem rngCompany.Offset(,1)
End If
Next rngContent
End If
End Sub
Hope that makes sense - I can post a link to a sample file.