0
Gracias

Unas palabras de agradecimiento nunca están de más.

VBA VB6 - Forzar el despliegue de un ComboBox




Para desplegar un ComboBox existe la función:
ComboBox1.DropDown


Sin embargo, para esto es necesario que el ComboBox tenga el foco, pero si el comando viene de otro control será ese control que tenga el foco, y esto no funcionará.

Para abrir el otro ComboBox es necesario recurrir a un truco.

Colocar los 2 ComboBox un una hoja de cálculo o en un UserForm y denominarlos ComboBox1 y ComboBox2 respectivamente.

En los eventos change de estos dos combo colocar el código siguiente:
Private Sub ComboBox1_Change() 
'========== Combo en una hoja =========    1 
    'ComboBox2.Activate 
'========== Combo en un UserForm o VB6 ========= 2 
    'ComboBox2.SetFocus 
'========================================== 
    SendKeys "^(F4)" 
End Sub 
  
Private Sub ComboBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 
    If KeyCode = 16 Then 
        ComboBox2.DropDown 
    End If 
End Sub


Liberando la línea 1 ó 2 según la ubicación de los ComboBox.
Resultado: cuando selecciones una opción en el ComboBox 1, el 2 se abrirá automáticamente.

0
Gracias

Unas palabras de agradecimiento nunca están de más.

Haz una pregunta
Jean-François Pillou

Nuestros contenidos son redactados en colaboración con expertos del ámbito tecnológico bajo la dirección de Jean-François Pillou, fundador de CCM.net y director digital en el Grupo Figaro. CCM es un sitio de tecnología líder a nivel internacional y está disponible en 11 idiomas.

Más información sobre el equipo de CCM

0 Comentario