IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Ouvrir l'explorateur sur une recherche avec caractère générique


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 218
    Par défaut Ouvrir l'explorateur sur une recherche avec caractère générique
    Bonjour à toutes et tous.

    Comme indiqué dans le titre, je voudrais ouvrir l'explorateur Windows (et pas une fenêtre application) basée sur une recherche avec caractère générique.
    Il semblerait que Shell coince sur ce dernier point :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ' Ouvrir le dossier TEMP :
    Shell "explorer.exe " & Chr(34) & Environ("TEMP") & Chr(34), vbNormalFocus     ' Ouvre bien le dossier TEMP
     
    ' Ouvrir un fichier :
    Shell "explorer.exe " & Chr(34) & Environ("TEMP") & "\cv_debug.log" & Chr(34),vbNormalFocus    ' Ouvre bien le fichier spécifié
     
    ' Ouvrir l'Explorateur sur tous les fichiers .log du dossier TEMP
    Shell "explorer.exe " & Chr(34) & Environ("TEMP") & "\*.log" & Chr(34), vbNormalFocus    ' Ouvre le dossier "Documents"
    Afin d'éviter tout débat ou conseil hors sujet, j'insiste sur le fait que je veux ouvrir l'Explorateur Windows avec un filtre actif et non une quelconque fenêtre application ou autre formulaire utilisateur.

    En vous remerciant par avance et vous souhaitant une excellente journée

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 176
    Par défaut
    Hello,

    "Il semblerait que Shell coince sur ce dernier point" ça veut dire quoi en clair ?
    Qu'est-ce qui "coince" ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    si tu veux sélectionner le fichier pas l'ouvrir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Params As String, AFilename As String
      AFilename = Environ("TEMP") & "\cv_debug.log"
      Params = "/n, /e, /select, " & Chr(34) & AFilename & Chr(34)
      Shell "explorer.exe " & Params, vbNormalFocus

  4. #4
    Membre éclairé Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 218
    Par défaut
    Citation Envoyé par rMist2024 Voir le message
    si tu veux sélectionner le fichier pas l'ouvrir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Params As String, AFilename As String
      AFilename = Environ("TEMP") & "\cv_debug.log"
      Params = "/n, /e, /select, " & Chr(34) & AFilename & Chr(34)
      Shell "explorer.exe " & Params, vbNormalFocus
    Merci pour ton retour, mais je n'ai jamais parlé de fichier...
    je voudrais ouvrir l'explorateur Windows (et pas une fenêtre application) basée sur une recherche avec caractère générique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Ouvrir l'Explorateur sur tous les fichiers .log du dossier TEMP
    Shell "explorer.exe " & Chr(34) & Environ("TEMP") & "\*.log" & Chr(34), vbNormalFocus    ' Ouvre le dossier "Documents"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Certes tu n'as pas parlé de fichiers mais l'exemple que tu as donné contient le nom de ce fichier
    Si le but est d'effectuer une recherche dans l'explorateur windows regarder dans ce lien

    https://excel-downloads.com/threads/...rche.20085652/

  6. #6
    Membre éclairé Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 218
    Par défaut
    Citation Envoyé par rMist2024 Voir le message
    Certes tu n'as pas parlé de fichiers mais l'exemple que tu as donné contient le nom de ce fichier
    Si le but est d'effectuer une recherche dans l'explorateur windows regarder dans ce lien

    https://excel-downloads.com/threads/...rche.20085652/

    Ben voilà, là c'est nickel !

    Sur la base du contenu de ce lien, j'ai pu obtenir ce que je voulais.
    En voici une version bien découpée qui permet de comprendre la construction de l'instruction Shell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub cmdOuvrirDossierTemp_Click()
    Dim strFiltre As String, _
            strDossier As String, _
            strRequete As String
     
        strFiltre = "*_CodeM.txt"
        strDossier = Environ("TEMP")
     
        strFiltre = "search-ms:query=" & strFiltre
        strDossier = "crumb=location:" & Chr(34) & strDossier & Chr(34)
     
        strRequete = strFiltre & "&" & strDossier
     
        strRequete = "explorer.exe " & Chr(34) & strRequete & Chr(34)
     
        Shell strRequete, vbNormalFocus
    End Sub
    On pourrait évidemment réduire drastiquement ce code, mais ça le rendrait moins lisible et ça ne servirait absolument à rien en terme de performances

    La requête entière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Contenu de strRequete avant exécution de la commande Shell :
    explorer.exe "search-ms:query=*_CodeM.txt&crumb=location:"C:\Users\ERICCH~1\AppData\Local\Temp""
    Et puisque le jeu c'est quand même partager, voici une procédure permettant d'ouvrir l'explorateur en précisant ou non un filtre et/ou un dossier basée sur ce même principe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Public Sub OuvrirExplorateur(Optional ByVal Filtre As String, _
                                 Optional ByVal Dossier As String, _
                                 Optional ModeOuverture As VbAppWinStyle = vbNormalFocus)
        Dim strFiltre As String, _
            strDossier As String, _
            strRequete As String
     
        strFiltre = Trim(Filtre)
        strDossier = Trim(Dossier)
     
        Select Case True
            Case strFiltre & strDossier = ""
     
            Case strFiltre = "" And strDossier <> ""
                strRequete = Chr(34) & strDossier & Chr(34)
     
            Case Else
                If strFiltre <> "" Then strFiltre = "search-ms:query=" & strFiltre
                If strDossier <> "" Then strDossier = "crumb=location:" & Chr(34) & strDossier & Chr(34)
     
                strRequete = strFiltre & IIf(strDossier <> "", "&" & strDossier, "")
                strRequete = Chr(34) & strRequete & Chr(34)
        End Select
     
     
        strRequete = Trim("explorer.exe " & strRequete)
     
    '    Debug.Print strRequete    ' Décommenter pour afficher la requête dans la fenêtre d'exécution
     
        Shell strRequete, ModeOuverture
    End Sub
    Encore merci rMist2024 pour cette belle piste ainsi qu'à tous ceux qui m'ont répondu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/07/2014, 13h53
  2. Réponses: 1
    Dernier message: 18/09/2010, 02h40
  3. Réponses: 6
    Dernier message: 04/12/2008, 18h28
  4. Je recherche de l'aide sur une requête avec dates
    Par Alain CARDINI dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/05/2008, 22h11
  5. Ouvrir une recherche avec Access
    Par dp33 dans le forum Access
    Réponses: 3
    Dernier message: 14/05/2006, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo