Salut à tous,

J'ai une feuille Excel avec 7 listbox dont 4 ont une macro du type ListBox1_Click().

Le but de mes macro est que le contenu des listbox soient générés en fonction du choix de la listbox précédente (exemple si choix 3 dans la listbox1 alors le contenu de la listbox2 est la plage B77:B86), et sont du style

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
 
Private Sub ListBox1_Click()
    Application.ScreenUpdating = False
 
    If Sheets("Data").Range("C4").Value = "Fiscal Balance" Then
        Sheet30.OLEObjects("ListBox7"). _
        ListFillRange = Worksheets("VariableNames").Range("B88").Address(external:=True)
 
        Else: Sheet30.OLEObjects("ListBox7"). _
        ListFillRange = Worksheets("VariableNames").Range("B77:B86").Address(external:=True)
    End If
 
    ListBox2.Selected(0) = True
    Sheet30.OLEObjects("ListBox6"). _
        ListFillRange = Worksheets("VariableNames").Range("B51:B58").Address(external:=True)
    Application.ScreenUpdating = True
 
End Sub
ou

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
Private Sub ListBox2_Change()
    'To select the classification:
    Application.ScreenUpdating = False
    If Sheets("Data").Range("D5").Value = 1 Then
        ListBox6.Enabled = False
        Else: ListBox6.Enabled = True
    End If
 
    If Sheets("Data").Range("D5").Value = 1 Or 2 Then
        ListBox7.Enabled = False
        Else: ListBox7.Enabled = True
    End If
 
    If Sheets("Data").Range("D5").Value = 3 Then
        ListBox7.Enabled = True
    End If
 
    Application.ScreenUpdating = True
 
End Sub
Bref, rien de bien sorcier. Tout fonctionne bien, sauf que quand je clique sur la listbox1, il faut 1-2 secondes pour que la listbox 2 se mette à jour.

Est-ce normal ou est-ce qu'il y a moyen d'accélérer la mise à jour ?

Merci d'avance