Try the code below in the Change event of the first combo box.

Private Sub ComboBox1_Change()
Dim rng As Range
With ComboBox1
Set rng = Range(.ListFillRange)
ComboBox2.ListFillRange = Range(rng.Offset(IIf(.ListIndex > -1, .ListIndex, 0), 0), rng.Cells(rng.Rows.Count, rng.Columns.Count)).Address
End With
If ComboBox2.ListIndex = -1 Then ComboBox2.Value = Null
End Sub
This copies the fill range used by the 1st combo box to the 2nd one, but starting from the value selected in the 1st combo box. Any value already in the 2nd box is retained if it is still valid, otherwise it is deleted.

If no value is selected in the 1st box, the 2nd box references the entire fill range of the 1st box.