Como contraer un combo box en excel mediante código vba

Tengo un combobox que se actualiza a medida que voy ingresando letras en el, pues me filtra los elementos de acuerdo a lo ingresado, este proceso funciona bien, el único problema es que quiero que se despliegue automáticamente cuando empiezo a escribir, en principio funciona bien, pero una vez empieza a "filtrar" se ve así:

Esto se arregla simplemente si presiono el botón de contraer y lo vuelvo a expandir, la idea seria hacer esto mediante código automáticamente. Este es el código del proceso:

Private Sub ComboBox1_Change()
ComboBox1.Clear
For i = 2 To Sheets("Hoja2").Range("a1").CurrentRegion.Rows.Count
lista = Sheets("Hoja2").Cells(i, 1)

If InStr(1, lista, ComboBox1.Value, vbTextCompare) > 0 Then
ComboBox1.AddItem lista
End If
Next
If ComboBox1.Value = "" Then
Exit Sub
Else

'ComboBox1.DropDown
End If
End Sub

1 Respuesta

Respuesta
1

H o l a:

Tienes pendiente valorar esta respuesta:

¿Cómo identificar la posición de la pantalla en donde hay un cambio de página en la impresión de excel, con código vba?


¿El combo es control de activex que pusiste en la hoja o es un combo de userform?

En la hoja

H o l a:

El código que pusiste no me funciona del todo bien, cada que pongo una letra la borra.

Pero si a ti te funciona, entonces lo que debes hacer es activar una celda y después activar el combo:

 Range("Z1000"). Activate
    ComboBox1. Activate

La celda Z1000 es un ejemplo, puedes poner cualquier celda, el truco es salir del combo y regresar al combo, con eso se despliega correctamente el contenido del combo.


':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas