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 :
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
Merci d'avance pour vos suggestions.