Combobox que incluya todas las opciones que tengan las letras ingresadas EXCEL

Dante Amor
Hola de nuevo, necesito una ayuda. Te adjunto una imagen ya que con la explicación y el titulo quizá no se entienda bien.
Lo que necesito es que el combobox "Materiales", yo al agregar por ejemplo "HORM" me incluya todas las opciones de la lista que incluya "HORM" y no las que empiezan con H.
El problema es que quizá yo necesito materiales que contengan arcillas, y yo escribo "Arcilla", pero solo me aparece la única opción que es "Arcilla", y no "Hormigón con arcilla" o por ejemplo "ladrillo de arcilla".
¿Hay alguna manera de lograr eso?
Por otra parte, ¿se puede desechar las palabras que no tengan nada que ver con arcilla? Digamos... El combobox me carga toda una lista de materiales, si yo escribo HORMIGÓN por ejemplo, me da las que empiezan con H, pero yo puedo subir y ver ladrillos, o vidrios. Es decir, lo que quiero es que solo me muestre todo lo que tenga que ver con hormigón.
Espero que se haya entendido y muchas gracias de antemano.

Respuesta
1

Envíame tu último archivo, r ecuerda poner tu nombre de usuario en el asunto del correo.

Te anexo el código para el combo:

Dim cargando
'
Private Sub ComboBox1_Change()
'---
'   Por.Dante Amor
'---
    'Carga materiales
    MATERIAL0.Clear
    If ComboBox1 = "" Or ComboBox1.ListIndex = -1 Then Exit Sub
    '
    Set h1 = Sheets("Materiales")
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "D").Value = ComboBox1.Value Then
            MATERIAL0.AddItem h1.Cells(i, "B")
        End If
    Next
End Sub
'
Private Sub MATERIAL0_Change()
'---
'   Por.Dante Amor
'---
    'Carga materiales por letra
    If cargando = True Then Exit Sub
    If ComboBox1 = "" Or ComboBox1.ListIndex = -1 Then Exit Sub
    '
    Application.ScreenUpdating = False
    Set h1 = Sheets("Materiales")
    col = "B"                           'columna de nombres
    fil = 2                             'fila inicial
    cargando = True
    dato = MATERIAL0
    MATERIAL0.Clear
    For i = fil To h1.Range(col & Rows.Count).End(xlUp).Row
        If UCase(h1.Cells(i, col)) Like "*" & UCase(dato) & "*" And _
           h1.Cells(i, "D") = ComboBox1 Then
            MATERIAL0.AddItem h1.Cells(i, col)
        End If
    Next
    MATERIAL0 = dato
    '
    'Se activa otro control para que aparezca el combo completo
    CAPA0. SetFocus
    Material0. SetFocus
    Material0. DropDown
    '
    Application.ScreenUpdating = True
    cargando = False
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

1 respuesta más de otro experto

Respuesta
1

https://youtu.be/of5u7VXoIk8 

Hola en este ejemplo busca de la manera que requieres, pero en listbox deberías adaptarlo o quizás necesites usar esto y no un combobox para lo que requieres, tal vez te sirva miralo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas