Listview

gvives

XLDnaute Occasionnel
Bonjour à tous,

J'ai une petite question,

J'ai créé une listview dans un userform. La base de données a laquelle elle est reliée est un fichier excel qui comprend environ 20 000 lignes et 17 colonnes. La première colonne de cette base de donnée comprend un numéro de chantier.

En fonction du numéro de chantier saisi par l'utilisateur, ma listview ne charge que les lignes ayant ce numéro.

Tout fonctionne mais je ne sais pas comment faire pour accélérer le temps de traitement sachant qu'à chaque changement il faut attendre 20 secondes.

Auriez vous une solution ?

Mille merci d'avance !

Gvives
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il n'y a pas 36 solutions: il faut définitivement arrêter de programmer du cellule par cellule, et toujours tout charger/décharger d'un coup dans des tableaux VBA.

Si ça vous intéresse j'ai une fonction qui vous fabrique à la fois la liste classée sans doublon des numéros de chantiers et pour chacun d'eux la liste des numéros de lignes qui s'y rapportent, le tout concentré dans un Variant. J'appelle ça un sujet. La fonction s'appelle d'ailleurs SujetCBx.
 
Dernière édition:

gvives

XLDnaute Occasionnel
Bonjour Drandreb, Bonjour Lone-Wolf,

Merci d'avoir répondu. Je n'ai effectivement pas mis de fichiers en pièce jointe car je voulais dans un premier temps savoir s'il l'accélération du code était possible.

Dranreb je suis preneur pour votre fonction, merci beaucoup. En effet c'est exactement le problème que je rencontre mais je ne sais pas comment remplir la listview sans faire du cellule par cellule.

Voici mon fichier exemple qui fonctionne avec mes codes (qui sont très lents si la BDD comporte 20 000 lignes). La base de données est dans l'onglet GLLEAD, je l'ai raccourcie volontairement à seulement quelques lignes.

Merci beaucoup pour votre aide !

Très bonne journée !!

Gvives
 

Pièces jointes

  • Fichier test.xlsm
    42.8 KB · Affichages: 43

laetitia90

XLDnaute Barbatruc
bonjour Gvives ,dranred:) , jeune loup:)
aime toujours pas les listviews peu être trés lent sur grosse base... souci compatibilité d'une version excel a l'autre ...chiant a coder c'est beau:rolleyes: c'est tout mais bon!!! un autre exemple
un autre exemple

ps: lone:) tu ressembles plus a un renardeau je trouve.....:D:D:p:p
 

Pièces jointes

  • listview2.xlsm
    38.9 KB · Affichages: 95

13GIBE59

XLDnaute Accro
Bonjour tout le monde.

Dans mon fichier comptes, ici, que j'utilise avec satisfaction tous les jours, le userform filtre s'ouvre en 38 secondes :mad:, car il a aujourd'hui
5124 lignes à charger...
Je me suis inspiré du code de Lone-wolf en utilisant les tableaux, et maintenant mon userform s'ouvre en....4 secondes.
Vous avez bien lu, 4 (quatre) secondes, c'est fulgurant ! :)

Cela dit, j'ai également "inspecté" les codes proposés par Laetitia et Dranreb (bises à l'une et poignée de mains à l'autre...;)) qui je n'en doute aucunement donneraient des fulgurances analogues. J'ai simplement choisi le code du petit loup solitaire parce que visuellement, il me paraissait
plus adapté aux capacités de mes deux neurones et de mon unique synapse...

En tous cas, merci à vous trois pour vos contributions qui m'ont incité à aller plus loin, car j'ai toujours eu une certaine appréhension des tableaux en vba, et sans vous je serais encore à mes 38 secondes...:confused:

A bientôt.

JB
 

Discussions similaires

Réponses
12
Affichages
635

Statistiques des forums

Discussions
311 711
Messages
2 081 792
Membres
101 817
dernier inscrit
carvajal