Salut,
Pour être plus rapide lors de l'exécution d'un code, il faut minimiser le lien par rapport au tableau Excel en lui même.
Ainsi, au lieu de boucler sur les cellules et leur valeurs elles-mêmes, dans la ligne de code :
For j = 4 To Lr
TS.AddItem f.Range("A" & j).Value
Next j
On va utiliser un tableau, comme ce qui suit :
Dim tabCode() As Variant
tabCode = f.Range("A4", "A" & Lr).Value
For j = LBound(tabCode, 1) To UBound(tabCode, 1)
TS.AddItem tabCode(j, 1)
Next j
J'ai repris les mêmes notation que toi, normalement ça devrait être bon, tu as juste à copier coller le bout de code cité en premier par le second bout de code que je t'ai écrit.
PS : Tu peux aussi utiliser la bonne vieille méthode,
Application.ScreenUpdating = False
Ca permet de gagner un peu de temps si ton écran est beaucoup sollicité dans la macro. Il ne faut pas oublier de le repasser à "True" à la fin de ton programme.
Bibu