VBA VB6 - Forcer l'ouverture d'un ComboBox





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
Serveur réserve : 3 combo & DropDown.xls
Publié par lermite222 - Dernière mise à jour le 2 mars 2011 à 18:33 par lermite222
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.
Dossier à la une
Windows 8 - À quoi s'attendre ?
VBA VB6 - Lire tous les fichiers, répertoires et sous/rép
Ouvrir un document ODT/ODF avec la suite Office (Word...)