[VBA] EnableEvents = False ne fonctionne pas avec l'event ListBox.Change ?

Bonjour.

Dans ce code, arrivé à la ligne "Settings.ListBox_hist.Selected(i) = True" l'évènement ListBox.Change se déclenche malgrès le EnableEvents = False ...

image
Sub Initialize_settings()
Application.EnableEvents = False
For Each cel In Sheets("Main").Range("E9:E" & Sheets("Main").Range("G" & Sheets("Main").Rows.Count).End(xlUp).Row)
    If cel = True Then
        For i = 0 To Settings.ListBox_hist.ListCount - 1
            If Settings.ListBox_hist.Column(2, i) = cel.Offset(0, 2) Then Settings.ListBox_hist.Selected(i) = True
        Next i
    End If
Next cel
End Sub
Private Sub ListBox_hist_Change()
For Each cel In Sheets("Main").Range("G9:G" & Sheets("Main").Range("G" & Sheets("Main").Rows.Count).End(xlUp).Row)
    For i = 0 To Me.ListBox_hist.ListCount - 1
        If Me.ListBox_hist.Selected(i) = True And Me.ListBox_hist.Column(2, i) = cel Then
            If cel.Offset(0, -2) <> True Then
                cel.Offset(0, -2) = True
                GoTo Fin
            End If
        Else
            If cel.Offset(0, -2) <> False And Me.ListBox_hist.Selected(i) = False And Me.ListBox_hist.Column(2, i) = cel Then
                cel.Offset(0, -2) = False
                GoTo Fin
            End If
        End If
    Next i
Next cel
Fin:
Call Generate_Active_Filter
End Sub

Pourquoi ? Comme résoudre ce problème ? J'avoue que je suis un peu perdu je n'ai jamais eu ce cas de figure

D'avance merci.. A+

bonjour,

si mes souvenirs sont bons, les événements sur les userforms ne sont pas contrôlables par la propriété enableevents de application.

mets un indicateur que tu testes dans listbox_change, pour pallier ce problème

Bonjour H2so4,

Par indicateur tu penses à une sorte de variable globale de type boolean qui agirais comme le DoEvents ? ça devrais marcher en effet... Je trouve ca un peu nul

EDIT : ça fonctionne avec une variable globale merci !

re-bonjour Gabin37,

Par indicateur tu penses à une sorte de variable globale de type boolean

oui

Je trouve ca un peu nul 

il y a peut-être une autre façon de faire, mais personnellement je n'ai rien d'autre à proposer, désolé.

Rechercher des sujets similaires à "vba enableevents false fonctionne pas event listbox change"