Recherche sur 1000 lignes

Bonjour,

Je cherche a améliorer le code suivant.

J'utilise un Userform pour afficher des données en fonction de 2 critères,

la base de données est composée de 1000 lignes, j'affecte les listes des combobox via les données des colonnes (triées, valeur unique)

Le code fonctionne mais l'affichage de l'userform est long , est-il possible de réduire ce temps, est il aussi possible de mieux trier les données dans les listes des combobox , les données sont triées mais pas parfaitement par exemple : 1 puis 11 puis 2 puis 20 au lieu de 1,2,11,20.

En vous remerciant,

Cordialement

Bonjour,

Ton fichier, ne comportant au stade où j'en suis, que l'initialisation...

A toi de confirmer ou non que c'est ce que tu veux avoir à l'ouverture du Userform.

Pour la suite, je suis dubitatif sur la façon dont tu entends opérer ta recherche...

Soit 2 réactions indépendantes selon sélection dans critère1 ou critère2 :

  • Tu sélectionnes dans critère1, on aligne la ListBox pour n'avoir que les éléments sur ce critère1.
  • Tu sélectionnes dans critère2, on aligne la ListBox pour n'avoir que les éléments sur ce critère2.
  • Dans les deux cas on ne touche pas à l'autre Combo et si nouvelle sélection dans critère2 après critère1, ou l'inverse, on aligne la ListBox sur le dernier critère choisi.

Un clic dans la ListBox lance l'affichage du 2e Userform...

L'autre voie est le cas où tu veux combiner les 2 critères :

  • Sélection dans critère1 => recomposition liste critère2 pour n'avoir que des critère2 correspôndant au critère1 choisi.
  • Sélection dans critère2 => recomposition liste critère1 pour n'avoir que des critère1 correspondant au critère2 choisi.
Rien de changé pour la ListBox.

Mais cela ouvre des variantes selon qu'on bloque ou non les choix successifs... (j'en ai pas encore fait le tour...)

En tout état de cause, il faudra prévoir un bouton de réinitialisation pour revenir au point de départ...

Cordialement.

Bonsoir le fil, bonsoir le forum,

C'est pas humain un code pareil Maître Ferrand !... J'suis vert !

Bon, vous savez pas ou je peux trouver du White Spirit à c't'heure-ci à Sète ?...

Bonsoir TauThème, et merci !

Je n'ai fait que penser que pour trier selon un ordre numérique, il valait mieux trier des nombres !...

Le white spirit, même à Sète, ne m'inspirait pas vraiment, mais par une série d'associations cela m'a évoqué que je me serais volontiers trouvé sur le port à déguster une bourride (un vieux souvenir...)

A la réflexion, la saison n'étant pas trop favorable, j'y repenserai à mon prochain passage en métropole...

Bonne soirée.

re

pourquoi? tu as le droit de quitter ton ile ??? pour l'instant ,ça caille en metrpole

cordialement

Bonsoir le fil, le forum,

Arf ! Cassé par Tulipe, le Maître... Vous êtes les bienvenus si de passage à Sète. Je me ferai un plaisir de vous rencontrer...

Bonjour Mr Ferrand,

Désolé pour cette réponse tardive mais la grippe est passée par là.

Je viens de regarder votre code, et respect…….

Je vous ai induit en erreur au niveau du premier critère en mettant comme valeurs : Pilote1,2 .etc alors que dans le réel les valeurs de la colonne 1 (critère1) peuvent avoir des noms différents.

Au niveau du fonctionnement j’aimerai pouvoir combiner les 2 critères si besoin.

Cordialement.

Pilougne

Bonjour à tous,

Ci-joint une proposition avec des fonctions 'génériques' réutilisables dans d'autres projets.

Les 2 combo de filtre sont liées entre elles et utilisent les valeurs des colonnes A et B.

Le filtrage se fait en combinant les valeurs des 2 combo.

Pierre

Bonjour Pierre,

Je vous remercie c'est exactement ce que je voulais et en plus avec pas beaucoup de code.

Pourriez-vous m'expliquer sommairement votre code afin que je puisse le comprendre et le transposer dans mon projet.

Je remercie également toutes les personnes qui ont consacré du temps à mon problème.

Cordialement

A toutes fins utiles, puisque j'avais commencé...

Alors, les explications, c'est pas trop mon fort, mais essayons. Le principe général est l'utilisation de tableaux.

* A l'initialisation de l'usf, on place le contenu de la feuille dans le tableau 'Tdata' et on lance la procédure "filtre"

* A la modif des combo, on lance également cette même procédure "filtre"

* La procédure "filtre" est basée sur le principe de sélections itératives des lignes du tableau 'Tdata', en premier sur le combo1 (si pas vide) puis sur le combo2 (si pas vide), en sortie on obtient donc le tableau filtré 'T' duquel on extrait les listes dédoublonnées (et donc également filtrées) pour les 2 combo.

Et on complète la listbox avec le tableau obtenu en sortie.

(Nb : on pourrait facilement multiplier les combo de filtre en ajoutant des lignes T=select_T... à la suite des autres)

Pour mes fonctions génériques (que je copie/colle tel-quel dans beaucoup de mes projets) :

* la fonction Select_T renvoie un tableau dont les valeurs de la colonne n°'col' correspondent à la valeur 'S' depuis le tableau 'Ttk'.

* la fonction Combo_T renvoie une liste triée de valeurs uniques de la colonne 'col' du tableau 'Ttk'

Ces fonctions (dont je suis l'auteur) permettent en effet un code de l'usf très concis (et ça me permet de raccourcir très nettement le temps de dév pour mes appli à livrer : les clients sont toujours pressés!!)

Est-ce que c'est suffisamment explicite?

Pierre

Rechercher des sujets similaires à "recherche 1000 lignes"