Option Explicit
Public WithEvents ComboBox As MSForms.ComboBox
Private TabComboBoxEvents() As Classe_ComboBoxEvents
Public ComboBoxEventsInitial As Classe_ComboBoxEvents
Public CurrentComboBox As ComboBox 'Variable partagée valorisée uniquement dans l'instance invoquée par l'appelant
Public index As Long
Public Sub SetComboBoxEvents(ParamArray TabComboBox() As Variant)
Dim i As Integer
'Instance de la Classe invoquée par l'appelant qui seule contient la variable CurrentComboBox valorisée
'accessible en instance de Classe ComboBox par Me.ComboBoxEventsInitial.CurrentComboBox
Set ComboBoxEventsInitial = Me
Me.index = -1
'Tables des instances de Classe des ComboBox
ReDim TabComboBoxEvents(LBound(TabComboBox) To UBound(TabComboBox))
For i = LBound(TabComboBox) To UBound(TabComboBox)
Set TabComboBoxEvents(i) = New Classe_ComboBoxEvents
Set TabComboBoxEvents(i).ComboBox = TabComboBox(i)
Set TabComboBoxEvents(i).ComboBoxEventsInitial = Me
TabComboBoxEvents(i).index = i
Next i
End Sub
'-----------------
'ComboBox_GotFocus 'NON GÉRÉ PAR LA CLASSE !!!
'-----------------
Private Sub ComboBox_GotFocus()
Call SaisieFiltréeComboBoxEnter(ComboBox, ThisWorkbook.Worksheets("Listes").ListObjects("TableauJuges").DataBodyRange)
End Sub
Private Sub Class_Initialize()
End Sub
Private Sub Class_Terminate()
Erase TabComboBoxEvents
End Sub
Private Sub ComboBox_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
MsgBox index & vbCrLf & Me.index
If Not Me.ComboBoxEventsInitial.ComboBox Is ComboBox Then
Call SaisieFiltréeComboBoxEnter(ComboBox, ThisWorkbook.Worksheets("Listes").ListObjects("TableauJuges").DataBodyRange)
Set Me.ComboBoxEventsInitial.ComboBox = ComboBox
End If
End Sub
'---------------
'ComboBox Change
'---------------
Private Sub ComboBox_Change()
Call SaisieFiltréeComboBoxChange(ComboBox)
End Sub
'---------------
'ComboBox Scroll
'---------------
Private Sub ComboBox_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
Call ControlScroll(ComboBox)
End Sub