Vincular 3 combobox en un Formulario VBA en Excel para agregar Departamentos, Municipios y Barrios a una Planilla

Tengo estos tres combobox, los cuales me deben permitir seleccionar desde el departamento, luego, con base en el departamento seleccionado, en el combobox municipios, se filtren únicamente los que correspondan al departamento seleccionado y así debe pasar con el combobox Municipio, para que una vez seleccione el municipio, se filtren los barrios que correspondan a ese municipio seleccionado.

Es importante, que si el departamento cambia, los combos municipio y barrio, se actualicen.

Dando click en el Boton "+", se desplegará el siguiente Formulario:

Este formulario, me permitirá crear los nuevos barrios para ese municipio, los cuales deben aparecer en el Combobox Barrio, una vez sean creados, para que de esta menera, lo pueda seleccionar.

Se que ustedes son unos duros con todo esto.

1 respuesta

Respuesta
1

H o l a:

Puedes enviarme tu archivo con el formulario, para ver en de cuáles columnas se toma la información de los combos, también para revisar cómo la tienes estructurada.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Luis Carlos” y el título de esta pregunta.

Listo Dante, te acabo de enviar el Fichero y una imagen, donde te señalo la parte que me interesa por ahora hacer funcionar.

Luis Carlos

También necesito implementar la forma de Eliminar municipios y barrios, tal cual, se pueden crear, también deseo poner la forma de eliminar el municipio o barrio seleccionado.

Luis Carlos 

H o l a:

Te anexo la primera parte, llenar departamento, municipio y barrio:

Actualiza los siguientes eventos:

Private Sub UserForm_Initialize()
    CmbCategoria. AddItem ("CIVIL")
    CmbCategoria. AddItem ("OFICIAL")
    CmbCategoria. AddItem ("SOLDADO")
    CmbCategoria. AddItem ("SUBOFICIAL")
    CmbCuerpo. AddItem ("ADMINISTRATIVO")
    CmbCuerpo. AddItem ("ARMAS")
    CmbCuerpo. AddItem ("LOGISTICO")
    CmbCuerpo.AddItem ("N/A")
    CmbGenero. AddItem ("FEMENINO")
    CmbGenero. AddItem ("MASCULINO")
    '======
    'Ini.Por.Dante Amor
    Dim h, j
    Set h = Sheets("Departamentos")
    For j = 1 To h.Cells(1, Columns.Count).End(xlToLeft).Column
        CmbDepExpedicion.AddItem h.Cells(1, j)
        CmbDepNacimiento.AddItem h.Cells(1, j)
        CmbDepartamento.AddItem h.Cells(1, j)
    Next
    'Fin.Por.Dante Amor
    '======
    CmbRH.AddItem ("A+")
    CmbRH.AddItem ("A-")
    CmbRH.AddItem ("B+")
    CmbRH.AddItem ("B-")
    CmbRH.AddItem ("AB+")
    CmbRH.AddItem ("AB-")
    CmbRH.AddItem ("O+")
    CmbRH. AddItem ("O-")
    CmbRH. AddItem ("--")
    CmbLateralidad. AddItem ("AMBIDIESTRO")
    CmbLateralidad. AddItem ("DIESTRO")
    CmbLateralidad. AddItem ("ZURDO")
    CmbLateralidad. AddItem ("--")
End Sub

Private Sub CmbDepartamento_Change()
'Llenar municipio
'Por.Dante Amor
    Dim h, i, col
    Set h = Sheets("Departamentos")
    CmbMunicipio.Clear
    CmbBarrio.Clear
    If CmbDepartamento = "" Then Exit Sub
    '
    col = CmbDepartamento.ListIndex + 1
    For i = 2 To h.Cells(Rows.Count, col).End(xlUp).Row
        CmbMunicipio.AddItem h.Cells(i, col)
    Next
End Sub

Private Sub CmbMunicipio_Change()
'Llenar barrio
'Por.Dante Amor
    Dim h, i, col, b
    Set h = Sheets("Barrios")
    CmbBarrio.Clear
    If CmbMunicipio = "" Then Exit Sub
    '
    Set b = h.Rows(1).Find(CmbMunicipio, lookat:=xlWhole)
    If Not b Is Nothing Then
        col = b.Column
        For i = 2 To h.Cells(Rows.Count, col).End(xlUp).Row
            CmbBarrio.AddItem h.Cells(i, col)
        Next
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas