Magasin en UserForm particulièrement lent

Salut la compagnie,

Je possède un magasin de pièces détachées en UserForm. J'alimente le magasin dans l'onglet "Stocks" c'est assez intuitif comme truc, par contre de 1000 à 2000 lignes ça passe mais pour tester j'en ai mis 7000 et là....ça rame à fond, j'ai pourtant un PC avec un i7.

Dans l'onglet "accueil" se trouve un bouton "magasin" qui active le userform, vous constaterez qu'il est assez lent. Est-ce qu'un expert connaitrais une combine dans le codage VBA pour qu'il soit beaucoup rapide et efficace ? En effet il risque d'y avoir 10 000 lignes d'articles la dedans.

Et autre question, est-il possible de faire en sorte que quand une ligne est sélectionnée dans le userform, que la liste soit "scrolable" avec la molette de la souris ?

Merci à tous, bande de génies

! ^^

Bonjour,

rien vu de rédhibitoire dans ton code.
Ce que je tenterai, c'est de remplir en une fois la listbox.
Tu parais maitriser, vue l'heure je vais faire court.

On peut remplir une listbox depuis une plage.
Donc au lieu d'ajouter ligne à ligne avec .AddItem, écrit dans un tableau que tu iras écrire sur une feuille de travail à la fin (cachée éventuellement) puis :

    'Remarque:
    'ColumnHeads = True spécifie que la première cellule précédent
    'la plage source est utilisée comme titre dans la ListBox.
    'ColumnHeads ne fonctionne pas pour la propriété List() et la
    'méthode AddItem.
    ListBox1.ColumnHeads = True

    ListBox1.RowSource = "Feuil1!A2:A10"

Indique le temps avant et après que je sache stp
eric

Merci pour ton retour Éric. Non je gère pas vraiment la VBA, j'ai utilisé un truc existant et fait modifier deux trois choses a une personne qui ne maîtrise pas trop les userForm.

Test mon fichier, une latence importante pour ouvrir le userForm et surtout tape quelque chose dans le chant de recherche en haut, là c'est super lent 😐

Je dois t'avouer que j'ai pas vraiment compris ta réponse du coup je sais pas quoi faire 😔

BsALV j'ai pas compris comment il fallait intégrer des lignes de codes pour scroller et ou .

Désolé je suis nul, j'aurais bien besoin de votre aide

re,

comme Eriiic le disait, si vous créez une plage avec vos données et vous utilisez cela pour votre listbox en une fois, cela va vite.

Maintenant, je l'ai uniquement fait pour l'initialisation de l'UF et puis pour le cas "urgent". Il y a un autofilter sur 28 colonnes, je ne savais pas si vous utilisez les colonnes G, H, I, J ??? autrement je pouvais les utiliser. Votre limite est apparament ligne 65.000, donc l'autofilter copie toutes les lignes visible vers la ligne 100.002 et utilise cette plage pour le listbox, tout cela en <0.3 sec. Les autres choses ne sont pas encore fait.

Bonjour,

c'est bon Bart, tu prends en main et je peux me retirer ?
eric

@Eriiic,

non, non, j'avais attendu un jour avant de me lancer, mais continuez ...

Si tu fais 0.3s c'est bon non ?
Pas de soucis pour moi, j'ai peu de temps disponible en ce moment...

Merci, effectivement cela a reduit l'ouverture mais le gros soucis est dans la barre de critère en haut, tape un code ou n'importe quoi il est ultra lent.

re,

j'avais dit que celui n'était pas encore modifié...

Merci BsAlv,

Effectivement c'est beaucoup plus rapide ! Par contre la macro du bouton "entrée sortie" ne fonctionne plus, il allume le débogeur

Comment faire ?

image

Merci BsAlv, c'est beaucoup plus fluide et j'ai vu que maintenant les décrémentations se font en direct.

Il y a néanmoins un petit souci.

Si je clique sur "urgences" je passe de 8113 lignes à 62, ce qui m'a l'air correct mais quand je reclique sur "contient" (c'est le filtre que j'utilise) alors il reste à 62 ligne, il faut que je ferme et rouvre le UserForm pour rafraichir.

Et pour finir tu saurait comment faire pour que la listebox principale soit scrollable avec la molette de la souris ?

Rechercher des sujets similaires à "magasin userform particulierement lent"