Problème de lenteur en utilisant une listbox

dan5071 Messages postés 2 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 11 mars 2010 - 10 mars 2010 à 15:10
dan5071 Messages postés 2 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 11 mars 2010 - 11 mars 2010 à 06:11
Bonjour à tous...
Je suis nouveau sur le site - tout autant qu'en programmation VBA

je me suis embarqué dans une galère et là j'ai un problème : Je construit avec mes petites connaissances en VBA une appli qui sera offert à une cinquantaine d'utilisateurs sans connaissance d'EXCEL. Ces gens sont tous des confrères dans une organisation syndicale à qui on demande de faire une analyse d'un registre fournit par un employeur de façon mensuelle. Voilà que le fichier fournit est un tableau de 15 colonnes qui compte environ 25000 lignes. Nous devons tous y retrouver le mouvements depuis le registre précédents en plus d'autres recherches à partir de dates inscrite sur chaque ligne.

Voila que le code me permettant de traiter l'information requise est fait et fonctionne admirablement bien. mais lorsque je veux l'intégrer dans une listbox qui est appellé à changer au gré de boutons (filtres) que l'utilisateur active, le traitement devient vraiment long. Quand je teste les routine 1 à 1, tout s'exécute en 1 clin d'oeil... mais c'est une autre paire de manche lorsque je lance la userform dans laquelle on retrouve la listbox et les boutons filtres.

Quelqu'un peut-il m'aider en me suggérant des choses à vérifier ou m'éclairer sur les limites de VBA que je ne connais pas.

Merci

2 réponses

Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
10 mars 2010 à 23:55
Essaye de faire simple pour commencer. Fais un tableur à 1 colonne dont tu mettra les valeurs dans une listebox. Augmente le nombre de valeur de ton tableau jusqu'au meme nombre de ligne que dans ton problème. S'il n'y a pas de lenteur alors la cause n'est pas le nombre d'entrée
0
dan5071 Messages postés 2 Date d'inscription mercredi 10 février 2010 Statut Membre Dernière intervention 11 mars 2010
11 mars 2010 à 06:11
Merci!
Ta suggestion pour tester l'origine du problème m'a amené à cerner le problème et le résultat à été de suprimer la ligne de code dans le userform ou j'affecte une valeur à la propriété Rowsource de la liste et de remplacer cette ligne de code par une ligne de code dans la procédure affectant la liste.
La commande tel que remplacé est la suivante et terriblement efficace ( traitement de l'ensemble des données en 1 clin d'oeil )
: "maliste.List() = Sheets("feuil3").Range("A1:o200").Value"

C'est fou ce qu'on apprend!

Encore une fois, merci
0
Rejoignez-nous