Bien, esto se puede resolver recorriendo la tabla o filtrándola.
Me decanté por este último método viendo que la hoja puede llegar a tener un número considerable de filas.
Entonces, en el Userform coloca al inicio estas 3 declaraciones de variables y las macros de los 2 desplegables. Ajusta los nombres según tu modelo.
Dim dato1 As String
Dim dato2 As Integer
Dim dato3 As String
Private Sub ComboBox1_Change()
If ComboBox1 = "" Or ComboBox2 = "" Then TextBox1 = "": Exit Sub
dato1 = ComboBox1.Text
dato2 = ComboBox2.Value
Call macroFiltro
TextBox1 = dato3
End Sub
Private Sub ComboBox2_Change()
If ComboBox1 = "" Or ComboBox2 = "" Then TextBox1 = "":Exit Sub
dato1 = ComboBox1.Text
dato2 = ComboBox2.Value
Call macroFiltro
TextBox1 = dato3
End Sub
Y dentro del mismo Userform coloca esta macro que filtrará la hoja ante cada cambio en alguno de los 2 combos y te devolverá el contenido de la col D.... ajusta aquí la letra de la col a devolver:
Sub macroFiltro()
'x Elsamatilde
'se trabaja con hoja Conmutador
Set hoc = Sheets("Conmutador")
'si la hoja no tiene colocados los filtros los coloca. y si está filtrada muestra todos.
If hoc.AutoFilterMode = False Then
hoc.Range("A1:F1").AutoFilter
ElseIf hoc.FilterMode = True Then
hoc.ShowAllData
End If
'se filtra el rango de datos por col A y B
finx = hoc.Range("A" & Rows.Count).End(xlUp).Row
hoc.Range("$A$1:$F$" & finx).AutoFilter Field:=1, Criteria1:=dato1
hoc.Range("$A$1:$F$" & finx).AutoFilter Field:=2, Criteria1:=dato2
'se busca la fila filtrada
finy = hoc.Range("A" & Rows.Count).End(xlUp).Row
'si hay registros coincidentes, guarda el dato de la col D
If finy = 1 Then
'no se encuentra registro coincidente
dato3 = ""
Else
dato3 = hoc.Range("D" & finy)
End If
End Sub
PD) podés solicitarme el libro con el ejemplo si algo no se comprendió.