Formulario con un combobox y dos textbox que hacen un doble filtrado

Me contacto con usted nuevamente para solicitar su ayuda. Es acerca de un formulario que quiero modificar para realizar una búsqueda más personalizada. Quiero un combobox que al desplegarse tenga el listado de los nombres de las hojas "FERRETERIA", "MALLAS", "POSTES", "TANQUES" y que también incluya un item que se llame "TODOS LOS MATERIALES". La idea de esto es que cuando yo escoja el combobox y escoja del combobox el item por ejemplo "MALLAS", seguidamente de esto escriba en el textbox1 o en el textbox2 cualquier cosa (Aclaración: Estos dos textbox cumplen la función de hacer un doble filtrado que usted una vez me ayudo a realizar Dante Amor), en el listbox aparezcan los datos filtrados de la columna descripción y la columna unidad, pertenecientes a la hoja "MALLA" porque en el combobox escogí esta opción. También quisiera que esto ocurriera para los items faltantes ("FERRETERIA","POSTES","TANQUES") con la diferencia que cuando yo escoja en el combobox por ejemplo el item "POSTES" y escriba seguidamente en cualquiera de los dos textbox cualquier cosa en el listbox aparezcan los datos filtrados de la columna descripción y la columna unidad, pertenecientes a la hoja "POSTES" porque en el combobox escogí esta opción. Esto es lo que quiero que entienda primero que todo.

Lo segundo es que para el item faltante llamado "TODOS LOS MATERIALES", quisiera que al escogerlo y seguidamente escriba en el textbox1 o en el textbox2 cualquier cosa, en el listbox aparezcan los datos filtrados de acuerdo a la columna descripción y la columna unidad, pertenecientes a las hojas "FERRETERIA", "MALLAS", "POSTES", "TANQUES" porque en el combobox escogí esta opción de "TODOS LOS MATERIALES". Osea que haga el filtrado para todos los materiales que hallan.

Todo lo anterior lo quiero para el userform1 de mi Libro de excel. Le agradezco mucho su ayuda Dante Amor ya que no cuento con alguien que me colabore y esto me ayudaría para agilizar las labores de mi trabajo. A su correo [email protected] le acabe de enviar el libro de excel con asunto el nombre de mi cuenta "juan00784".

1 Respuesta

Respuesta
1

Te anexo el código actualizado

Private Sub ComboBox1_Change()
    Filtrar_Material
End Sub
Private Sub TextBox1_Change()
    Filtrar_Material
End Sub
Private Sub TextBox2_Change()
    Filtrar_Material
End Sub
'
Sub Filtrar_Material()
'Por Dante Amor
    If ComboBox1.ListIndex = -1 Or ComboBox1.Value = "" Then
        MsgBox "Selecciona una hoja"
        ComboBox1.SetFocus
        Exit Sub
    End If
    '
    Select Case ComboBox1.Value
        Case "TODOS LOS MATERIALES"
            hojas = Array("FERRETERIA", "MALLAS", "POSTES", "TANQUES")
        Case Else
            hojas = Array(ComboBox1.Value)
    End Select
    '
    ListBox1.Clear
    For h = LBound(hojas) To UBound(hojas)
        Set h1 = Sheets(hojas(h))
        For i = 5 To h1.Range("B" & Rows.Count).End(xlUp).Row
            If TextBox1.Value = "" Then t1 = h1.Cells(i, "B") Else t1 = TextBox1.Value
            If TextBox2.Value = "" Then t2 = h1.Cells(i, "D") Else t2 = TextBox2.Value
            If LCase(h1.Cells(i, "B").Value) Like "*" & LCase(t1) & "*" And _
               LCase(h1.Cells(i, "D").Value) Like "*" & LCase(t2) & "*" Then _
                ListBox1.AddItem h1.Cells(i, "B").Value
                ListBox1.List(ListBox1.ListCount - 1, 1) = h1.Cells(i, "D").Value
            End If
        Next i
    Next h
End Sub
'3)Aceptar el valor elegido y capturarlo en la celda activa
Private Sub CommandButton2_Click()
    Cuenta = Me.ListBox1.ListCount
    For i = 0 To Cuenta - 1
        If Me.ListBox1.Selected(i) = True Then
            ActiveCell.Value = Me.ListBox1.List(i)
        End If
    Next i
    Unload Me
End Sub
'4)Cerrar el formulario
Private Sub CommandButton1_Click()
    Unload Me
End Sub
'
Private Sub UserForm_Activate()
    ListBox1.ColumnCount = 3
    ComboBox1. AddItem "FERRETERIA"
    ComboBox1. AddItem "MALLAS"
    ComboBox1. AddItem "POSTES"
    ComboBox1. AddItem "TANQUES"
    ComboBox1. AddItem "TODOS LOS MATERIALES"
End Sub

Crea un combobox



'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

.

{

[

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas