Mi duda es la siguiente en el combobox

Dante que tal mira hoy agregue nuevos datos al formulario con fecha 01-02-2018 pero no me sale al final del combobox, sino que me ordena después del primero, y debería ser al ultimo por pasar al mes 02

1 Respuesta

Respuesta
1

Lo reviso y te posteo el código

Ya vi cuál es el problema, al ordenar los datos en el combo lo hace en base a string, tengo que cambiar eaa forma cuando se trata de fechas, ahora estoy en el cel, pero lo actualizo y te lo envío.

perfecto, gracias

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas