Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 WinSearch VBA | PowerPivot et/ou PowerQuery

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Pour faire écho à la discussion de @patricktoulon, j'ai retrouvé ce fil

J'ai voulu testé sur 365 et W10 64 bits
Et j'ai ce message d'erreur

Alors tout comme @patricktoulon , je vous invite à tester le code présent dans la discussion de 2013 citée plus haut

La question étant: est-ce que chez vous aussi ce message d'erreur apparait ?

EDITION: Voir le message#57 où apparait PowerPivot dans l'histoire.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

@jurassic pork
Merci pour le lien cBenchmarck
Je vais voir ce que cela donne sur mon PC.
EDITION:
Merci également pour la modification de Windir pour l'utiliser avec cBenchmark


entre les différentes méthodes de recherche de patricktoulon
Il n'était pas tout seul dans le bateau, le patrick, notamment pour Windir, posté par @dysorthographie.
Quand à moi, j'ai fait dans la suggestion d'emploi de PS et/ou de WSearch, initialement dans sa discussion.
Au point de créer cette discussion, curieux d'investiguer plus avant avec WSearch.
Je n'oublie pas les autres participants qui sont passés dans mon fil, et je remercie au passage.
(/aparté Césarien)
 
Dernière édition:

jurassic pork

XLDnaute Occasionnel
Bonjour le fil

@jurassic pork
Merci pour le lien cBenchmarck
Je vais voir ce que cela donne sur mon PC
Hello Staple1600
L'installation de cBenchmark n'est pas forcément évidente il faut cocher en référence le Microsoft Scripting Runtime (à cause des dictionary).
Télécharger le fichier cBenchmark.bas, l'éditer dans un éditeur de texte.
Dans Excel créer un module de classe cBenchmark et coller dedans le contenu de cBenchmark.bas
 

Staple1600

XLDnaute Barbatruc
Re

@jurassic pork
Merci pour les précisions, mais j'avais déjà coché (quand j'ai lu Dictionnary dans le code)
• Pour télécharger depuis Github, en cliquant sur
Puis ==> CTRL+A/CTRL+C => CTRL+V dans VBE
et c'était OK direct

Voici les résultats sur mon PC
NameCountSum of ticsPercentageTime sum
Init Windir1 4 654 0,05%465 us
Execute Windir18 735 42099,95%874 ms
TOTAL2 8 740 074100,00%874 ms
Total time recorded:874 ms

C'est nettement moins bien que chez toi

PS: Est-ce que le fait d'avoir d'autres logiciels ouverts a une incidence ?
Et est-ce mieux de tester avec un seul classeur ouvert ?
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour @patricktoulon

@jurassic pork
Si je teste (sans charger TB sur une feuille, ce que je faisais dans le test précédent), j'obtiens le même total pour le Time sum que toi.
IDnr​
Name​
Count​
Sum of tics​
Percentage​
Time sum​
0​
Init Windir​
1​
148​
0,05%​
15 us​
1​
Execute Windir​
1​
312 377​
99,95%​
31 ms​
TOTAL​
2​
312 525​
100,00%​
31 ms​
Total​
time recorded:​
31 ms​
C'est bizarre, non ?
(Car on n'a pas la même configuration, ni le même nombre de classeurs sur nos PC)
Ou alors il y a un truc qui m'échappe
 

jurassic pork

XLDnaute Occasionnel
Une coincidence ?
avec ce test :
VB:
Sub test_simple()
Dim TB()
TB = WinDir("SCOPE='file:D:\Dev'", "AND System.FileExtension =  '.xlsm'")
End Sub
j'ai 31 ms
Avec ceci :
Sub test_simple()
VB:
Dim TB()
TB = WinDir("SCOPE='file:D:\'", "AND System.FileExtension =  '.dll'")
End Sub
j'ai 1,67 s
 

Staple1600

XLDnaute Barbatruc
Re

@jurassic pork
Bizarrement si je teste la procédure de test sur github : Sub testCBenchmark()
Je n'obtiens pas les mêmes résultats que sur le site.
Et toi ?
IDnr​
Name​
Count​
Sum of tics​
Percentage​
Time sum​
0​
Initialisations​
1​
143​
0,00%​
14 us​
1​
Slept​
2​
1 005 527​
17,56%​
101 ms​
2​
Finished loop​
1​
94 675​
1,65%​
9,47 ms​
3​
Waited​
1​
4 624 944​
80,78%​
462 ms​
TOTAL​
5​
5 725 289​
100,00%​
573 ms​
Total time recorded:​
573 ms​

Sinon avec C:\ et *.dll, j'obtiens
2,38 s

on peut lire en bas de page sur le site
  • Edge m'a traduit dans la langue de Molière, mais est-ce qu'un XLDien peut traduire en langage de tous les jours ?
  • Celui que j'utilise pour parler avec ma boulangère quand je vais acheter mon pain aux graines de chia
  • Non, je déconne, je mange du pain noir
 
Dernière édition:

jurassic pork

XLDnaute Occasionnel
Effectivement l'ai refait des essais cela serait plutôt 430 ms et pour la V2 ça varie sérieusement de 863 ms à 269 ms . La première fois que je lance c'est la plus lente. Un effet de cache ou de dll chargées ?
 

Staple1600

XLDnaute Barbatruc
Re

[Aux lecteurs du fil]
Je vois qu'on arrive déjà à cinq pages dans cette discussion
Je viens d'échanger en MP avec patricktoulon, et comme @jurassic pork ne lit pas les MP, j'ai une suggestion en forme de désidérata que je publie dans la discussion.

On peut se focaliser ici sur VBA+WindowsSearch qui est le thème de ma discussion
et parler de la pseudo boite de dialogue de patrick dans sa discussion ?

C'est possible ? (Et sans que personne ne prenne la mouche ?)

Pour la volée de bois verts, commentaires en MP, svp
[/Aux lecteurs du fil]


Avec Windows Search (manuellement), on peut enregistrer le résultat de ses recherches.
On obtient alors un fichier *.search-ms stocké dans C:\Users\STAPLE\Searches
Exemple pour EXCEL
Fichiers EXCEL.search-ms qui est en fait un fichier XML
(qui contient des éléments qu'on a utilisé dans le code VBA)
En même temps, c'est logique.

Ma question : Est-ce qu'on peut utiliser ces fichiers en VBA ?
(sans passer par un Shell pour les ouvrir)
 

Staple1600

XLDnaute Barbatruc
Re

@patricktoulon
Je suis passé à autre chose
Voir le message#63
Ici, je ne cherche plus à améliorer, je cherche à explorer une autre voie

PS: Pour info, le message#30, c'est moi qui l'ai posté
C'est dans le #31 que tu as repris le SCOPE posté dans le #30 et que j'avais testé pendant ta ballade.
(à moto si j'ai bonne mémoire)
 

jurassic pork

XLDnaute Occasionnel
Que veux-tu faire de ces fichiers ? dedans il n'y a pas les résultats de la requête mais plutôt de quoi la relancer ( à mon avis ) ou alors le moyen de retrouver ces résultats qui sont cachés quelque part.
 

dysorthographie

XLDnaute Accro
Bonjour,
 

Staple1600

XLDnaute Barbatruc
Re

@jurassic pork
Je suis d'accord.
Un double-clic sur ces fichiers permet de relancer une recherche précédemment enregistrée.

@patricktoulon
L'intérêt ( ou plutôt le pourquoi de la chose) je l'avais évoqué dans le message#3 de ta discussion pseudo boite
Staple¸ en mode K.I.S.S à dit:
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.
Ma participation à ton fil, et ma digression (la création de cette discussion), c'est juste par curiosité intellectuelle, et pour macérer mes neurones dans VBA/PS*PQ et tutti quanti.

Donc actuellement, je suis en train de me fader la lecture de
Microsoft Windows Desktop Search (WDS) utilise la syntaxe de requête avancée (AQS) pour aider les utilisateurs et les programmeurs à mieux définir et affiner leurs recherches.

Je ne reviendrai dans Excel un peu plus tard, voir beaucoup plus tard

Bon dimanche à tous
 

crocrocro

XLDnaute Impliqué
Bonjour le fil,
Intéressant … ou pas, peut-être hors sujet :
La syntaxe SQL propose des options qui permettent de

- D'extraire seulement une partie des enregistrements correspondant à la sélection (en utilisant TOP associé à ORDER BY)
VB:
SELECT TOP 100 …. WHERE …. ORDER BY …
Le temps d'exécution est quasi proportionnel au nombres d'enregsitrements extraits (d'où l'intérêt de le faire dans la requête et non à postériori dans la feuille)

- D'effectuer une recherche dans le contenu des fichiers (en utilisant CONTAINS ou FREETEXT)
Code:
SELECT  …. WHERE SCOPE = ... AND  CONTAINS('"xxx" AND "yyy" AND zzz"')
SELECT  …. WHERE SCOPE = ... AND  FREETEXT('xxx yyy zzz')
SELECT  …. WHERE SCOPE = ...  AND  (CONTAINS ( System.Author,'"crocrocro"' ) RANK BY WEIGHT ( 1.000 ) OR CONTAINS ( System.Document.LastAuthor,'"CestEncoreMoi"' ) RANK BY WEIGHT ( 0.500 ))
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…