Exécution très lente d'un userform

Bonjour tout le monde,

J'espère que vous vous portez bien en cette période.

Mon Userform met à peu près 2 minutes pour s'ouvrir. Le Userform contient des combobox en cascade de 4 niveau qui s'alimente à partir de l'onglet Base. Il s'agit d'une base de donnée qui contient 1444 ligne (Matricule, Nom, Prénom et date d'ancienneté)

Par ailleurs, j'ai trouvé le code vba dans ce forum que j'ai adapté selon mes besoins. L'ancienne version contenait une trentaine de ligne mais le nbre de ligne dans le code était fixé à 65000 lignes et y avait pas ce problème.

Est le nombre réel des lignes qui ralenti le lancement de l'userform ou autre chose ? Y aurait il une solution ?

Merci pour votre aide !

20classeur-1.xlsm (90.53 Ko)

Bonjour,

L'affichage devrait probablement être instantané en passant au préalable tes données dans un array.

C'est le fait de faire des aller/retour avec la feuille qui ralentit l'affichage.

C'est plus de la cascade... C'est un goutte à goutte !

C'est bon... je sors !

EDIT : Je ne vois pas l'intéret de ce type de procédure alors que tu as un index parfait avec le matricule... Je le mettrai en première colonne et puis juste un combo sur le nom ça devrait largement te suffire ?

Peux-tu justifier ce choix de cascade vraiment curieux ?

A+

Tu as aussi 1368 noms différents ... pas sûr qu cela rentre dans une liste déroulante.

Je suis d'accord avec Galopin. Une cascade est adaptée quand on a des répétitions sur une colonne.

Il y a aussi un nombre invraisemblable de zombi de shape qui se baladent Faudrait pas nous prendre pour des poubelles. C'est quoi ce binz ?

EDIT : Au temps pour moi . Les zombis se baladaient dans mon classeur de W pas dans ton fichier joint.

A+

@Galopin, change ton avatar

zombi

Merci pour les réponses ...!

Je souhaiterai garder la colonne des noms en premier car la personne qui utilisera le fichier veut chercher par nom (c'est plus simple qu'un matricule). Le Userform que je vous ai envoyé n'est que la première partie de l'interface. Les données affichées dans les combobox seront copié dans un second onglet qui me servira pour autre chose.

Je rappelle que le code répond parfaitement à ce que je cherche. En saisissant les premières lettres du nom, les choix s'affichent. En cas de noms similaires, le combobox prénom me sort les 2 prénoms possibles pour ensuite avoir le bon matricule et la date d'ancienneté.

Auriez vous une solution pour la lenteur ?

Merci

Je rappelle que le code répond parfaitement à ce que je cherche.

Alors là du coup je ne comprend plus !

S'il vous convient pourquoi venir demander de résoudre un problème ?

BoisgontierJacques vous connaissez ?

Voici sa page sur les listes sans doublon et triées , ceci pour remplir votre premier ComboBox , après il existe d'autre code pour faire les mise à jour des suivantes ComBoBox en fonction de la première...

Et comme vous la suggéré Steelson, et au vu du code de ce lien : ICI, le remplissage par tableau est mieux...

@ bientôt

LouReeD

Pff... Des fois ça surchauffe un peu !

oleyoub : Tu es sure qu'un truc normal comme le fichier joint ne suffirai pas ?

Tu tapes les premières lettre du nom et basta...

A+

18oleyoub.xlsm (146.97 Ko)

Bonjour à tous. Bonjour oelayoub

Galopin. je crois que ce n'est pas le bon fichier

Avec les macros de Mr Jacques Boisgontier

32classeur-1-2.xlsm (91.38 Ko)

@ galopin01 : Ca y est le fichier fonctionne !

Qu'avez vous changé ?

@ bientôt

LouReeD

Non, non c'est le modèle "de base" sans calendrier avec une saisie numérique.

Ha ! OK !

Faut juste que je rajoute le calendrier pour voir l'erreur ?

@ bientôt

LouReeD

@Galopin @Bob71au

Merci beaucoup franchement vous êtes des génies

@Galopin Ta proposition est super sophistiquée pour moi, si tu considère que ton fichier est plus simple alors là ...

Merci beaucoup tout le monde merci

Comme je dis souvent : Le plus compliqué c'est de faire simple !

A+

Rechercher des sujets similaires à "execution tres lente userform"