Bonjour, je vais craquer, je ne sais pas pourquoi Application.EnableEvents = False ne marche plus chez moi


Voici une fonction qui desactive les events avant d'appeler un code qui remplit une combobox...Cette sub est appelée d'une feuille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
'--------------------------------------------------------------------------
Private Sub LoadCBSupersectFilter()
'--------------------------------------------------------------------------
    Application.EnableEvents = False
 
    Dim supersect As Range: Set supersect = Range("supersect")
    Dim supersectors As Range: Set supersectors = Range(supersect.Offset(1), supersect.End(xlDown))
    Dim combo As ComboBox
    Set combo = Me.CBSupersector
    combo.AddItem ("All")
    LoadComboboxFromRange combo, supersectors, True
 
    Application.EnableEvents = True
End Sub
Je redésactive meme encore une fois dans cette fonction appelée, codée dans un module, et bizarement, a la deuxieme valeur rentrée dans la combobox, un event est levé et on va donc direct dans CBSupersector_Change.
Ce code est classique pour filtrer les doublons, on se sert de la clé d'une collection, tout marche évidement tres bien si j'enleve CBSupersector_Change...dont j'ai evidement besoin.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
'--------------------------------------------------------------------------
Public Sub LoadComboboxFromRange(combo As ComboBox, fillingcells As Range, flush As Boolean)
'--------------------------------------------------------------------------
    Application.EnableEvents = False
 
    Dim cell As Range
 
    If flush Then
        combo.Clear
    End If
 
    For Each cell In fillingcells
        'fill the edition zone of the combo box
        combo = cell
        'combo.ListIndex = -1 if the cell value is already in the combobox
        If combo.ListIndex = -1 And cell <> "" Then
 
            combo.AddItem cell
        End If
    Next cell
 
    Application.EnableEvents = False
End Sub
Pitié si vous pouvez m'aider...