Saltar al contenido

Combobox dependientes y filtro dinámico en tercer combobox


Recommended Posts

publicado

Hola a todos.

Acudo a ustedes con el animo de que me colaboren en la programación del formulario adjunto a este tema.

La idea es programar tres combobox dependientes.

El Combobox 1, debe filtrar y cargar los valores únicos de la comuna "Tipo" en la Tabla1, la cual está en la hoja "Equipos".

El combobox 2, debe cargar y mostrar los elementos de la columna "Descripción", los cuales ya deben hacer sido filtrados de acuerdo al tipo de elemento, ya sea "Equipo" o "Periférico".

Y finalmente el combobox 3, debe mostrar los seriales de esos elementos que están en el combobox 2.

Una vez el operador de la aplicación seleccione un serial del elemento en el combobox 3, ese serial debe escribirse automáticamente en el TextBox7 del formulario Asignacion. Cuando se de Click en el Boton "Asignar", el serial seleccionado, ya no debe estar disponible en el Combobox 3, ni tampoco la descricpción de ese elenento en el combobox 2, hasta tanto, no se indique que el elemento ha sido devuelto.

El estado se cambia con base en el boton DEVOLVER, si en el "Estado" de cada elemento dice "Disponible", el equipo puede aparecer en los combo box para ser prestados o asignados.

Pero si en el Estado de cada elmento aparce que está "Prestado", entonces no debe aparecer para ser asginado, pero si debe aparecer en los combobox de los elementos para DEVOLUCIÓN.

Bueno, esa es mas o menos la idea, adjunto comparto el archivo, con el formulario, espero su valiosa colaboración.

Luis Carlos

Asignar equipos para trabajo.rar

publicado

Hola, les cuento que he logrado tener un avance, navegando por internet, encontré un ejemplo el cual he adaptado a mis necesidades, aunque no se si esté bien, pero aún me falta.

También tuve que hacerle una modificación a la idea inicial.

Aún me falta logar eliminar los elementos de los combobox donde se asignan di este no está disponible.

Tambien me falta cargar los combobox de los elementos en uso o que estan para devolución.

También me falta crear la macro para "Asignar" o guardar una vez selecciono el elemento y digito los datos de la persona que lo va a utirlizar.

En fin, aún me falta.

Comparto con ustedes las macros, por si a alguien le sirve y de paso también nuevamente el Fichero, para que si tienen tiempo, me hechen una mano.

de Antemano, gracias.

Asignar equipos para trabajo - Avance.rar

publicado

  • Private Sub ComboBox1_Change()
    ComboBox2.Clear
    ComboBox2.SetFocus

    UF = Sheets("Equipo").Range("C" & Rows.Count).End(xlUp).Row
    For i = 10 To UF
    If Sheets("Equipo").Cells(i, "C") = ComboBox1 Then
    AddItem ComboBox2, Sheets("Equipo").Cells(i, "D")
    End If
    Next

    End Sub

    Private Sub ComboBox2_Change()

    ComboBox3.Clear
    ComboBox3.SetFocus

    UF = Sheets("Equipo").Range("C" & Rows.Count).End(xlUp).Row
    For i = 10 To UF
    If Sheets("Equipo").Cells(i, "C") = ComboBox1 And _
    Sheets("Equipo").Cells(i, "D") = ComboBox2 Then
    AddItem ComboBox3, Sheets("Equipo").Cells(i, "E")
    End If
    Next

    End Sub

    Private Sub ComboBox3_Change()

    ComboBox4.Clear
    ComboBox4.SetFocus

    UF = Sheets("Equipo").Range("C" & Rows.Count).End(xlUp).Row
    For i = 10 To UF
    If Sheets("Equipo").Cells(i, "C") = ComboBox1 And _
    Sheets("Equipo").Cells(i, "E") = ComboBox3 Then
    AddItem ComboBox4, Sheets("Equipo").Cells(i, "F")
    End If
    Next

    End Sub

    Rem PARA ACTUALIZAR LOS COMBOBOX
    Private Sub CmdActualizar_Click()

    ComboBox1.Clear
    UF = Sheets("Equipo").Range("C" & Rows.Count).End(xlUp).Row
    For i = 10 To UF
    AddItem ComboBox1, Sheets("Equipo").Cells(i, "C")
    Next
    End Sub
    Rem FIN

    Sub AddItem(cmbBox As ComboBox, sItem As String)
    'Agrega los item únicos y en orden alfabético
    For i = 0 To cmbBox.ListCount - 1
    Select Case StrComp(cmbBox.List(i), sItem, vbTextCompare)
    Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
    Case 1: cmbBox.AddItem sItem, i: Exit Sub 'Es menor, lo agrega antes del comparado
    End Select
    Next
    cmbBox.AddItem sItem 'Es mayor lo agrega al final
    End Sub

    Private Sub ComboBox4_Change()
    TextBox7.Value = ComboBox4.Value
    TextBox2.SetFocus
    End Sub

    Private Sub UserForm_Activate()

    ThisWorkbook.Activate

    ComboBox1.Clear
    UF = Sheets("Equipo").Range("C" & Rows.Count).End(xlUp).Row
    For i = 10 To UF
    AddItem ComboBox1, Sheets("Equipo").Cells(i, "C")
    Next

    End Sub

    Private Sub CmdCancelar_Click()
    End
    End Sub[/CODE]


    [/indent]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.