Garder ordre listview en mémoire, est-ce possible ?

claudio54

XLDnaute Junior
Bonjour à toutes et à tous

Le contexte : un listing de 40 000 lignes sur 4 colonnes. Avec ces données, j'ai créé une listview et pour faciliter les recherches, en cliquant sur l'entête de colonne, la listview trie les données en ascendant ou descendant. Jusque la tout va bien.
Comme dans mon fichier réel, il y a plusieurs items avec le même libellé dans une colonnes (mais pas dans les autres), je me suis débrouillé de les réafficher dans la même listview (clear des données présentes et affichages des nouvelles données).
Le problème : comment revenir à la première listview sans recharcher celle-ci qui me pénalise d'une trentaine de secondes (dans le fichier réel)

en exemple : (3000 lignes pour raison de taille fichier) lancer le fichier, lancer le chargement de la listview, faire une recherche (toto par exemple), la listview se réaffiche avec 2 items contenant toto. Comment revenir en arriere ?

Soyez indulgents sur la qualité du code, en tant qu'autodidacte, c'est pas toujours évident.

Merci
 

Pièces jointes

  • EssaiList.xlsm
    226.8 KB · Affichages: 55

Dranreb

XLDnaute Barbatruc
Re : Garder ordre listview en mémoire, est-ce possible ?

Bonsoir.
Dans une Userform_Initialize chargez vous Feuil1.UsedRange.Value dans un variable déclarée en tête du Userform Dim T() as Variant, puis ne travaillez plus qu'avec T(L, C) dans le reste du code, sans plus jamais utiliser Range. Vos 30 secondes passeront à 30 millisecondes.
 

claudio54

XLDnaute Junior
Re : Garder ordre listview en mémoire, est-ce possible ?

Bonsoir Danreb

Tout d'abord, merci de vous être penché sur mon soucis, et ensuite un grand Merci. C'est au delà de mes espérances. De 32,5s avec mon code, j'arrive à 1.2s avec votre astuce. J'avoue qu'en lisant votre réponse, j'étais un peu dubitatif, mais j'avoue, je suis bluffé.
Encore merci
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 244
Membres
103 162
dernier inscrit
fcfg