Bonjour à tous,
Je sais que c'est un sujet récurrent et qu'il y a déjà des tutos là-dessus, mais après avoir parcouru tout ça et testé plusieurs choses, ce n'est pas satisfaisant à mon goût.
En résumé mon code gère 4 ComboBox différentes en les remplissants sans doublons. Certaines des ComboBox influent sur le contenus des autres.
Bref, dans la ComboBox qui est amenée à contenir le plus d'entrées, le temps de chargement est trop long à mon goût (peut-être trop luxueux, à vous de me le dire). Ce chargement se fait à partir d'une liste de 900 lignes environ, mais avec pas mal de doublons. C'est surtout le tri des doublons qui prend du temps à mon avis.
Auriez-vous s'il vous plait des idées d'optimisation ?
Je vous joins mon code :
Merci d'avance pour vos suggestions.
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
25 'Pour info ident, type_etalon, et secteur sont des ComboBoxes Private Sub ident_GotFocus() If type_etalon.Value <> "" Or secteur.Value <> "" Then Else ThisWorkbook.ActiveSheet.Unprotect Range("zy:zz").NumberFormatLocal = "@" ident.Clear For i = 1 To ThisWorkbook.Worksheets("liste").Range("a3").End(xlDown).Row ThisWorkbook.ActiveSheet.Cells(i, 701) = ThisWorkbook.Worksheets("liste").Cells(i + 3, 2).Value Next i ThisWorkbook.ActiveSheet.Range("zy:zy").AdvancedFilter _ Action:=2, CopyToRange:=Range("zz1"), Unique:=True For j = 1 To Range("zz1").End(xlDown).Row ident.AddItem ThisWorkbook.ActiveSheet.Cells(j, 702).Value Next j Range("zy:zz").Columns.Delete ThisWorkbook.ActiveSheet.Protect End If End Sub
Partager