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
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 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
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.
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
Est-ce normal ou est-ce qu'il y a moyen d'accélérer la mise à jour ?
Merci d'avance
Partager