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
    151.1 KB · Affichages: 1
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...

laurent950

XLDnaute Barbatruc
Bonjour @patricktoulon

j'ai fait le test pour toi a l'instant

Pour les :
--->> Test A4 = il y a aucune apparition brève de la fenêtre dos chez moi
--->> Test B4 = J'ai rien constaté
--->> Test C4 = Voir message VBA ci-dessous

1728212850556.png



Je suis pas aller plus loin j'ai pas tester l'userform, j'ai fait un essaie mais ne connais pas le principe pour aller plus loin = le mode d'emplois

Laurent
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@laurent950
M'est avis que tu n'as pas de lecteur K ;)
Enrichi (BBcode):
Sub testA3()
    'rechercher les fichiers  avec "cdo" dans le nom avec n'importe quelle extension sans récursivité
    MsgBox FilDialogSepcial1.File("K:\vba excel", "cdo", , True)
End Sub
Moi également, je ne suis pas allé plus loin.
Je n'ai pas de lecteur K et Windows Search me suffit amplement pour rechercher des fichiers ;)
(D'autant plus que je peux enregistrer mes recherches)
Et ainsi je laisse Excel vivre sa vie de tableur.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick, Laurent, Staple,
( PC I5-2300 Win10 XL2007 VBA6 )

1° la filedilogspecial1
La fenêtre DOS n'apparait que 1 seconde, rien de rédhibitoire.... mais inesthétique. ;)
2° la filedilogspecial2
Impec. Rapide et pas de fenêtre DOS. :)
( 1.76s pour 16921 fichiers récupérés en récursif )
3° la filedilogspecial3
Extrêmement long sur mon PC. 10s pour 2768 fichiers à récupérer. :(

Dans ma config, la 2 est indubitablement la meilleure. 🙌 🙌 🙌
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Ben ... j'ai lancé Sub testA1, Sub testB1 , et Sub testC1.
Pour récupérer le temps j'ai bidouillé "go_Click" en rajoutant "T = Timer" au début et
"TxtbExpression = Timer - T" à la fin. J'ai ainsi le temps dans l'userform.

NB: Pour le temps il y a plus esthétique. Modifier la ligne avec :
VB:
labelcount = .ListCount & " Fichiers trouvés en " & Format(Timer - T, "0.000s")
 

laurent950

XLDnaute Barbatruc
Re @patricktoulon

Suite au test sur un lecteur (Excel 2013 si cela peut t'aider aussi Patrick),

je suis allé plus loin dans les tests @patricktoulon. Ci-dessous :

testA1, apparition Msgbox, puis userform
Puis recherche = fenêtre du DOS à l'écran le temps de la recherche avec récursif (trop long et gênant)
testB1, apparition Msgbox, puis userform = pas de fenêtre DOS mais très long et plantage (erreur d'exécution '14':
Espace de chaîne insuffisant
Arrêt sur la ligne
1728216787174.png

testC1, plante, chemin d'accès introuvable
suite choix d'un lecteur et récursif
message
1728216864283.png

débug
1728216908333.png
 
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
314 708
Messages
2 112 090
Membres
111 416
dernier inscrit
philipperoy83