Como hacer listas dependientes en formulario excel

Cordial Saludo

Expertos tengo un formulario con 3 listas combobox: año, mes, día; con la primera no tengo problemas sin embargo quiero que al seleccionar el mes me traiga en el combobox de día, los días que correspondan a ese mes, y si es año bisiesto me traiga febrero con los 29 días.

Gracias por su ayuda

1 respuesta

Respuesta
2

Si estás cargando los meses con números del 1 al 12, utiliza lo siguiente para llenar los días

Private Sub ComboBox1_Change()
'Por.DAM
    ComboBox2 = ""
    ComboBox3 = ""
End Sub
Private Sub ComboBox2_Change()
'Por.DAM
    ComboBox3 = ""
    If ComboBox1 <> "" And ComboBox2 <> "" Then
        dia = Day(DateSerial(ComboBox1, ComboBox2 + 1, 1) - 1)
        For i = 1 To dia
            ComboBox3.AddItem i
        Next
    End If
End Sub
Private Sub UserForm_activate()
'Por.DAM
    'carga años
    For i = 2010 To 2020
        ComboBox1.AddItem i
    Next
    'carga meses
    For i = 1 To 12
        ComboBox2.AddItem i
    Next
End Sub

Si estás cargando los nombres de los meses, utiliza lo siguiente:

Private Sub ComboBox1_Change()
'Por.DAM
    ComboBox2 = ""
    ComboBox3 = ""
End Sub
Private Sub ComboBox2_Change()
'Por.DAM
    ComboBox3 = ""
    If ComboBox1 <> "" And ComboBox2 <> "" Then
        mes = ComboBox2.ListIndex + 1
        dia = Day(DateSerial(ComboBox1, mes + 1, 1) - 1)
        For i = 1 To dia
            ComboBox3.AddItem i
        Next
    End If
End Sub
Private Sub UserForm_activate()
'Por.DAM
    'carga años
    For i = 2010 To 2020
        ComboBox1.AddItem i
    Next
    'carga meses
    ComboBox2. AddItem "Enero"
    ComboBox2. AddItem "Febrero"
    ComboBox2. AddItem "Marzo"
    ComboBox2. AddItem "Abril"
    ComboBox2. AddItem "Mayo"
    ComboBox2. AddItem "Junio"
    ComboBox2. AddItem "Julio"
    ComboBox2. AddItem "Agosto"
    ComboBox2. AddItem "Septiembre"
    ComboBox2. AddItem "Octubre"
    ComboBox2. AddItem "Noviembre"
    ComboBox2. AddItem "Diciembre"
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

La pregunta no admite más respuestas

Más respuestas relacionadas