Autres Tests de diverses solution pour lister dans un dialog perso des fichiers en filtrant par expression et extension

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
si il y a des âmes charitables qui voudraient bien tester ma pseudo boite de dialogue fichier avec filtre ca m'arrangerait
en fait je l'ai créée sous trois formae différente

1° la filedilogspecial1
avec un dir en ligne de commande lancée par wscript.shell(.excec) et récupérée par le stdout.readall
ce qui implique une apparition brève mais tout de même de la fenêtre dos

2° la filedilogspecial2
avec un dir en ligne de commande lancée par wscript.shell (.run)et récupérée dans un fichier text temporaire
ce qui implique que la fenêtre dos n'apparait pas puisque je hide la fenêtre

3° la filedilogspecial3
dans celle ci j'utilise un hersats de ma fonction FSOGOSUB de 2021 avec FSO

tout les argument sont optionnels
le choix du fichier se fait au double click
possibilité d'annuler

vous avez 3 module pour tester chaque version
si vous pouviez donc tester la testA4 , TestB4 , TestC4 qui sont selon moi les plus importantes
et me dire si la différence de temps d'apparition de la fenêtre avec la liste de fichier filtrée avec les arguments envoyés par les sub de testsest importante ou pas
voir même cela vous gène t il plus que ça (que la fenêtre dos apparaisse brièvement (pour la fildialoSpecial1) )?

merci aux testeurs ;)
après moult tests dans diverses situations la version 5 et celle qui a été retenu
 

Pièces jointes

  • boite de dialog recherche de fichier V1 2 3 4 5 6.xlsm
    165.1 KB · Affichages: 0
Dernière édition:
Solution
bon après moults test dans diverses conditions pour la boites de dialog ce sera la petite dernière que j'ai un peu montré dans la vidéo
c'est pas la plus rapide mais

1° version 1 la méthode cmd Dir--> stdout readall ayant un problème de formatage et affichant la fenêtre de cmd vous l'avez compris de toute façon c'est la première a avoir été abandonnée

2° Version 2 méthode cmd dir --> fichier temporaire est acceptable mais selon l'occupation du pc elle peut varier su simple à X 7 a peu prés et elle exige forcement que au moins la destination du fichier soit autorisée pas simple sur pc pro voir même privé logué avec compte MS sur windows

3° version 3 FSO elle fonctionne très bien mais elle est plus lente que les autres mais je...

patricktoulon

XLDnaute Barbatruc
Bonjour @patricktoulon,

Comme ton code est le plus rapide, et même ultra rapide, je me suis posé cette question : n'y a-t-il pas un moyen de forcer la priorité d'Excel de [Normal à Haute] (le temps de l'exécution de la VBA), puis à la fin, de la repasser de [Haute à Normal] ? Par expérience, on m'avait conseillé cette modification via AutoCAD par un service informatique il y a de cela très longtemps. Je ne sais pas si cela se gère via VBA et s'il peut y avoir un impact significatif sur les temps d'exécution.
C'est juste une idée.

Laurent
Laurent j'ignore complétement de dont tu parles
 

patricktoulon

XLDnaute Barbatruc
comme je disais ça dépend des cas le plus souvent ma version 5 est plus rapide que la 2
exemple
1729437236935.png



la même recherche avec la 5

1729437283696.png


comme on dit y a pas photo ;) 😂
 

laurent950

XLDnaute Barbatruc
Laurent j'ignore complétement de dont tu parles
Voila patrick
j'ai trouvé cette explication

Windows xxx vous permet de choisir la priorité à donner aux ressources attribuées aux logiciels que vous utilisez.
Par défaut, les logiciels sont lancés dans une priorité normale.
Pour booster un peu un logiciel, vous pouvez augmenter temporairement sa priorité au dépend des autres logiciels.
Sous Windows xxx, cliquez avec le bouton droit de la souris sur la barre des tâches et cliquez sur Gestionnaire des tâches.
Dans la fenêtre qui apparaît, cliquez avec le bouton droit de la souris sur le logiciel dont vous souhaitez augmenter la priorité.
Cliquez sur Accéder aux détails.
Cliquez alors avec le bouton droit de la souris sur le processus sélectionné.
Cliquez sur Définir la priorité puis sur Haute. Evitez le mode Temps réel qui peut rendre votre système instable.
Fermez enfin la fenêtre du Gestionnaire des tâches.
Notez qu'une fois que vous fermerez votre logiciel, sa priorité sera de nouveau normale les fois suivantes.

j'avais eu une manipulation via un service informatique, mais il y a de cela très longtemps pour optimisé Autocad

je sais pas si cela ce gère avec VBA avec Excel ? et si il y a un gain réel ?
 

patricktoulon

XLDnaute Barbatruc
re
là je comprends mieux en effet mais ca n'a aucune incidence reelle sur excel vu que l'on utilise du vba et des fonction comme dir ou externe comme FSO adobd etc....
sincèrement je vois pas vraiment comment et avec quoi on pourrait optimiser plus que ca la 1 , 2 3 et 5
allez la même avec la 3
comme tu vois @jurassic pork même la 3 est plus rapide que la 2
1729437992578.png


il faut bien comprendre que mon intérêt dans ce topic c'est pas de lister le plus vite possible c'est d'avoir une liste filtrée assez rapidement a portée de click dans un fichier excel
et avec toutes les vidéos et capture qui prouvent A+B que mes version 5 et FSO seront largemnt supérieures dans le cadre d'une recherche typée

j'ai cru comme vous au départ que la 1 et 2 (la 4 mise à part) serait plus rapide mais non
l'optimisation que j'ai faite dans ces deux modèles est tout simplement bluffante

il est evident que si l'on veut un listing complet on prendra la 2 bien évidemment
 

patricktoulon

XLDnaute Barbatruc
a moi je m'en sert tout les jours voir toute la journée même
et si je vous dit que depuis le post156 ou je disais que je ne voyais pas comment optimiser plus que ça
et ben peut être que si en fait

la logique est simple
je cherche ce fichier
k:\vba excel\manipuler le ruban avec customUI\test_excel\chapotototructurlututupointu.xlsx


imaginons avec la 1,2,3,5 que je cherche "cha*to*tru*tur*po"
ça en fait des morceaux hein
et bien si par exemple je cherche ce fichier précisément et si j'arrêtais le moulin tout simplement dès qu'il le trouve hein ? ;)
avec la 1 et 2 je gagnerais pas beaucoup car le plus gros du temp c'est l'execution de la commande mais quand même

mais la 3 et 5 la c'est pas pareil
je suis quasiment certain qu'avec la 5 je passe de "ms" à "µs"
 

patricktoulon

XLDnaute Barbatruc
bon alors c'est pas le temps que j'attendais mais bon :rolleyes: là on est aux fesses de la 4
je recherche un seul fichier
k:\vba excel\manipuler le ruban avec customUI\test_excel\chapotototructurlututupointu.xlsx
avec la 5
1729441775371.png


ça décoiffe un peu je dirais non ?
0.035 contre 0.066 on est très proche de la moitié en mode recherche 1 fichier
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous

j'ai opéré une grosse modif de principe pour la 4
pour les recherches multi expression la requette et faite avec la première
et au lieu de liter selon les expression je reprend la liste et la decante dans une variable tableau



@laurent950
je reviens vers toi pour faire un peu le bilan sur ce code avec les api
alors on est dans des temps toujours vraiment pas mal
mais c'est quand même une déception après avoir ajouté tout ce qui manquait

donc pour commencer
1° je l'ai transformée en fonction retournant une liste
2° 'Ajout de l'extension dans la recherche(optionnelle "*.*" par defaut)
3° 'L'argument SearchString est optionnel aussi
4° 'Correction double separateur sur l'ajout conditionnel du dernier séparateur de path
5° 'Correction sur la recherche globale(tout fichiers) les dossier ne sont plus listés
6° 'Correction avec ajout de test GetAttr pour ne pas lister les dossiers


donc avant ton code dans un debug.print nous renvoyait 0.003xxxx
sauf qu'il listait tout dossiers et fichiers
donc au final avec toutes ces corrections conceptuelles ,avec le getattr pour n'avoir que les fichiers on remonte à 0.060/0.080 soit au niveau de la 5

je l'ai quand même greffé à un dialog (la 6) ça reste encore un résultat plus que satisfaisant

là vous les avez toutes je leurs ai donnés à chacune une couleur différente

Voila elles sont tout fonctionnelles ;)
 

Pièces jointes

  • boite de dialog recherche de fichier V1 2 3 4 5 6.xlsm
    165.1 KB · Affichages: 2
Dernière édition:

Statistiques des forums

Discussions
314 337
Messages
2 108 557
Membres
110 210
dernier inscrit
mjr83