VBA VB6 - Forcer l'ouverture d'un ComboBox

Septembre 2016





Pour obliger un ComboBox à s'ouvrir il y a la fonction...
    ComboBox1.DropDown

Seulement voilà... Pour ça il faut que le comboBox ai le focus, et si la commande vient d'un autre contrôle c'est ce contrôle qui a le focus, donc... ça va pas.

Pour ouvrir l'autre ComboBox il faut recourir à une astuce que voilà,

Placer 2 ComboBox sur une feuille de calcul ou sur un UserForm nommer respectivement ComboBox1 et CombBox2

Dans les événements change de ces deux combo placer le code suivant.

Private Sub ComboBox1_Change()     
'========== Combo sur une feuille =========    1     
    'ComboBox2.Activate     
'========== Combo sur un UserForm ou 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


En libérant la ligne 1 ou 2 suivant l'emplacement des comboBox.
Résultat : Quand vous faite une sélection sur le ComboBox 1, le 2 s'ouvre automatiquement.

Télécharger un classeur Excel 97 - 2003
Serveur 1 : 3 combo & DropDown.xls


A voir également :

Ce document intitulé «  VBA VB6 - Forcer l'ouverture d'un ComboBox  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.