Ouvrir l'explorateur en mode recherche

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
comme la demande est venu au moins 5/6 fois cette année (si c'est pas plus)sous diverses formes ,et que je ne sais pas où la mettre

je vous pose là une petite macro qui lance l'explorateur en mode recherche avec divers exemples

VB:
Sub LanceeExplorerEnModeSearch()
    Dim pfolder$, searchQuery$, explorerCommand$
    'patricktoulon'
    pfolder = Environ("userprofile") & "\Documents" ' Chemin de base pour la recherche

    'Exemple de critères de recherche :
    'exemple 1
    searchQuery = ".xlsx" 'recherche tout les fichiers excel xlsx(sans macro)

    'exemple 2
    'searchQuery = ".png OR *.jpg" ' recherche tout les fichiers image png ou jpg

    'exemple 3
    'searchQuery = "datemodified:>=01/01/2024" 'Rechercher des fichiers modifiés y a pas longtemps ou après une date

    'exemple 4
    'searchQuery = "nomdufichier" 'Rechercher des fichiers parle nom

    'exemple 5
    'searchQuery = "type:=.txt AND datemodified:>=01/01/2024" ' rechercher des fichiers ".txt" qui auraient été modifiés après le 01 janvier 2024

    ' concat de la commande la commande
    explorerCommand = "explorer.exe ""search-ms:query=" & searchQuery & "&crumb=location:""" & pfolder & """"

    ' on lance la commande la commande
    Shell explorerCommand, vbNormalFocus
End Sub

quelques explications de base
Les arguments de la commande
  1. search-ms: spécifie que l'on veut le mode une recherche.
  2. query= : la requête de recherche (par exemple, type:=.txt ou *.docx).("type:" n'est pas obligatoire si plusieurs arguments)
  3. Le crumb?
  • crumb=location:"[path]" : limite la recherche au dossier (pas de récursivité)
  • crumb=location:"" pas de limite (récursivité active)
  • et si on le met pas c'est les propriété par défaut

Voilà sommes toutes pas grand chose mais pour les futures recherches j'ai pensé que ce petit topic serait de bonne augure
 
Bonjour à tous
comme la demande est venu au moins 5/6 fois cette année (si c'est pas plus)sous diverses formes ,et que je ne sais pas où la mettre

je vous pose là une petite macro qui lance l'explorateur en mode recherche avec divers exemples

VB:
Sub LanceeExplorerEnModeSearch()
    Dim pfolder$, searchQuery$, explorerCommand$
    'patricktoulon'
    pfolder = Environ("userprofile") & "\Documents" ' Chemin de base pour la recherche

    'Exemple de critères de recherche :
    'exemple 1
    searchQuery = ".xlsx" 'recherche tout les fichiers excel xlsx(sans macro)

    'exemple 2
    'searchQuery = ".png OR *.jpg" ' recherche tout les fichiers image png ou jpg

    'exemple 3
    'searchQuery = "datemodified:>=01/01/2024" 'Rechercher des fichiers modifiés y a pas longtemps ou après une date

    'exemple 4
    'searchQuery = "nomdufichier" 'Rechercher des fichiers parle nom

    'exemple 5
    'searchQuery = "type:=.txt AND datemodified:>=01/01/2024" ' rechercher des fichiers ".txt" qui auraient été modifiés après le 01 janvier 2024

    ' concat de la commande la commande
    explorerCommand = "explorer.exe ""search-ms:query=" & searchQuery & "&crumb=location:""" & pfolder & """"

    ' on lance la commande la commande
    Shell explorerCommand, vbNormalFocus
End Sub

quelques explications de base
Les arguments de la commande
  1. search-ms: spécifie que l'on veut le mode une recherche.
  2. query= : la requête de recherche (par exemple, type:=.txt ou *.docx).("type:" n'est pas obligatoire si plusieurs arguments)
  3. Le crumb?
  • crumb=location:"[path]" : limite la recherche au dossier (pas de récursivité)
  • crumb=location:"" pas de limite (récursivité active)
  • et si on le met pas c'est les propriété par défaut

Voilà sommes toutes pas grand chose mais pour les futures recherches j'ai pensé que ce petit topic serait de bonne augure

Bonjour et merci beaucoup pour cet article qui m'a permis d'arriver à mes fins 🙂
J'ai cependant un souci avec :
  • crumb=location:"[path]" : limite la recherche au dossier (pas de récursivité)
A lieu de voir l'explorateur s'ouvrir, j'obtiens l'erreur suivante :
"Windows ne trouve pas '[null)'. Vérifiez que vous avez entré le nom correct, puis réessayez."

Pourrais-tu donner un exemple standard, du type chercher les ".txt" dans Documents mais pas dans ses sous-dossiers ?

Merci d'avance !
 
Dernière édition:
Bonjour
pas de demande par MP sauf si c'est confidentiel
sinon je reste a ma boite MP 24 sur 24
la prochaine fois fait un petit UP dans la discussion

bon ceci étant dit
c'est vrai que depuis W10 ca a un peu changé cette histoire
je t'ai fait une sub pilotée
en effet avec w10 et 11 c'est plus costaud la syntaxe
le code change un peu
tu a maintenant dans la fonction le choix recursif ou pas
tu paramètre tout dans la sub et tu lance

VB:
'---------------------------------------------------------------------------
'patricktoulon'
'exemple de requete
'Exemple de critères de recherche :
'exemple 1
'searchQuery = ".xlsx" ' recherche tous les fichiers Excel xlsx (sans macro)

'exemple 2
'searchQuery = ".png OR .jpg" ' recherche tous les fichiers image PNG ou JPG

'exemple 3
'searchQuery = "datemodified:>=01/01/2024" ' Rechercher des fichiers modifiés après une date

'exemple 4
'searchQuery = "nomdufichier" ' Rechercher des fichiers par le nom

'exemple 5
'searchQuery = "type:=.txt AND datemodified:>=01/01/2024" ' Rechercher des fichiers ".txt" modifiés après le 01 janvier 2024

'exemple 6
'searchQuery = ".txt" ' Rechercher des fichiers ".txt"
'-----------------------------------------------------------------------------------
Sub test()
    Dim pfolder$, searchQuery$, recursif As Boolean
    pfolder = Environ("userprofile") & "\Documents" ' Chemin de base pour la recherche
    searchQuery = ".txt"'type de fichier
    LanceeExplorerEnModeSearch2 pfolder, searchQuery, False'on lance
End Sub

Function LanceeExplorerEnModeSearch2(pfolder$, searchQuery$, recursif As Boolean)
    Dim explorerCommand$

    explorerCommand = "explorer.exe ""search-ms:query=" & searchQuery & _
                       IIf(Not recursif, _
                       "&crumb=System.ItemFolderPathDisplay:=" & pfolder & """", _
                       " &crumb=location:""" & pfolder & """")
    ' Lancer la commande
    Shell explorerCommand, vbNormalFocus
End Function

patrick
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour