Esto va en el form userform1
Private Sub UserForm_Initialize()
Set h1 = Sheets("Ingresar")
For i = 3 To h1.Range("E" & Rows.Count).End(xlUp).Row
Call Agregar_Fec(ComboBox1, h1.Cells(i, "E").Value)
Call Agregar_Fec(ComboBox2, h1.Cells(i, "E").Value)
Call Agregar(ComboBox3, h1.Cells(i, "A").Value)
Next
End Sub
Sub Agregar_Fec(combo As ComboBox, dato As String)
Dim fec1 As Date
Dim fec2 As Date
For i = 0 To combo.ListCount - 1
fec1 = CDate(combo.List(i))
fec2 = CDate(dato)
If fec1 = fec2 Then Exit Sub
If fec1 > fec2 Then combo.AddItem dato, i: Exit Sub
Next
combo.AddItem dato 'Es mayor lo agrega al final
End Sub
'
Sub Agregar(combo As ComboBox, dato As String)
For i = 0 To combo.ListCount - 1
Select Case StrComp(combo.List(i), dato, vbTextCompare)
Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
End Select
Next
combo.AddItem dato 'Es mayor lo agrega al final
End Sub
sal u dos