Pregunta sobre ComboBox

Hola que tal, ojala me puedas ayudar en lo que me aqueja.
En Excel hice un UserForm con un combobox. En este combobox cargue una base de datos de una hoja de calculo en el libro. Al escribir la primera letra en el combobox se despliegan los elementos que empiezan con esa letra o primera palabra. Ahora si yo quisiera que en el combobox se desplieguen todos los elementos que contienen una cierta palabra que no necesariamente sea la primera de los datos almacenados en el combobox.
¿Se puede hacer esto?
Y si se puede te agradecería mucho si me lo dijeras. Saludos.
Respuesta
1
Una solución que se me ocurre (no se si es la mejor o si es lo que quieres exactamente) es la siguiente :
Realizas un filtro avanzado y que el resultado del mismo lo copie en otro rango("lista_aux" por ejemplo), y luego en el combobox le asignas al ListFillRange un nombre de rango "list_aux el cual es dinámico
aquí va el código para que sea más claro
Primer paso : Filtro avanzado para la creaciòn de la lista que contienen la palabra especifica
sub filtro()
Range("B2:B10").Select    'B2:B10 contiene la base original
Range("B2:B10").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"E2:E3"), CopyToRange:=Range("C3"), Unique:=False
' en E2:E3 esta el criterio de filtro (para que filtre por contenido de palabras debes poner un * delante de la misma
Range("F10").Select
End Sub()
Segundo paso :  Crear Rango dinamico utilizando la funciòn REF
Ir a Insertar\Nombres\Definir
nombre : lista_aux
Se refiere : =DESREF(Hoja2!C2;0;0;CONTARA(Hoja2!C:C);1)
TErcer paso : en la propiedad ListFillRange del ComboBox escribir lista_aux
NOTA : puededes llamar a la rutina filtro() desde el evento keyDown del ComboBox

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas