Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA - Comment intercepter un évènement sur un Control Active X créé dynamiquement

Dudu2

XLDnaute Barbatruc
Bonjour,

Je créé dynamiquement une ComboBox (code ci-dessous)
Je voudrais intercepter un ComboBox_Click().

Faut que je créé un classe ?

VB:
Sub a()
    Dim OLEObj As OLEObject
    Dim ComboBox As msforms.ComboBox
   
    Set OLEObj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
                                            DisplayAsIcon:=False, Left:=700, Top:=100, Width:=328, Height:=16)
    Set ComboBox = ActiveSheet.ComboBox1
End Sub
 
Solution
Bonsoir.
En tout cas il faut que la ComboBox soit globale et WithEvents dans le module objet qui prend en charge l'évènement. Un module de classe serait utile s'il y en a plusieurs.
Si leurs listes doivent être construite automatiquement d'après différentes colonnes d'un même tableau je vous conseille d'utiliser ma classe ComboBoxLiées, elle s'occupe aussi de toute la gestion des choix, et renvoie à son détenteur le ou les numéros de lignes concernés via des évènements.

patricktoulon

XLDnaute Barbatruc
Bonjour
Attention @Dudu2 sur certaines version d'excel avec VBA 7 avec certaines mise a jour l'interception n'est plus possible pour les activX (oleobject.object) dans les feuilles
c'est le cas par exemple chez moi sur 2013 32 vba 7
et surtout les versions click&run
 

Discussions similaires

Réponses
16
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…