Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

EXPLORATEUR DE WINDOWS ET RECHERCHE FICHIER

11 réponses
Avatar
Nicolas
Bonjour =E0 tous,

j'utilise souvent : Shell "explorer.exe " & chemin, vbMaximizedFocus

pour ouvrir l'explorateur de Windows sur un dossier par d=E9faut.

Mais parfois, je souhaiterais remplir automatiquement le champ pr=E9vu pour=
rechercher un nom de fichier donn=E9. (Windows 7).

=BF est-ce possible ?

Merci d'avance pour votre aide.

=C0 bient=F4t.

10 réponses

1 2
Avatar
MichD
Bonjour,

Suppose que tu veux voir la location d'un fichier spécifique dans l'explorateur de Windows :
Pour définir cette variable avec le chemin seulement ou un fichier dans un répertoire
particulier... c'est selon ce que tu désires....
CheminEtFichier = "c:windowsnotepad.exe"
OU
CheminEtFichier = "c:UsersTon profilDocuments"

Explorateur Windows va s'ouvrir en sélectionnant soit le fichier ou le répertoire à l'écran.

Exemple :
'------------------------------------------------------------------------------------
Sub Voir_Un_Fichier_Dans_Explorateur_Fichiers_Window()

Dim CheminEtFichier As String
'Tu définis le chemin et le fichier de ton choix
CheminEtFichier = "c:windowsnotepad.exe"

'Pour tester si le fichier existe pour un répertoire
'If If Dir(Chemin, vbDirectory ) <> "" Then
If Dir(CheminEtFichier) <> "" Then
Shell "C:WINDOWSEXPLORER.EXE /select," & CheminEtFichier, vbNormalFocus
Else
MsgBox "Le fichier """ & CheminEtFichier & """ est " & _
"introuvable dans le chemin spécifié."
End If
End Sub
'------------------------------------------------------------------------------------

Tu as différentes alternatives pour la ligne de syntaxe selon le résultat que tu veux :
(désolé, mais je ne fais pas de traduction.
'-------------------------------------------------------------------------------------
Syntax
EXPLORER.EXE [/n][/e][,/root,<object>]
EXPLORER.EXE [/n][/e][,/select,<object>]
Command Line Switches
/n:
Opens a new window in single-paned (My Computer) view for each item selected, even if the new window
duplicates a window that is already open.
/e:
Uses Windows Explorer view (Opens a 2 pane view of the selected folder).
/root,<object>:
Specifies the root level of the specified view.
The default is to use the normal namespace root (the desktop). Whatever is specified is the root for
the display.
<object> designates the folder path
This switch is used with a folder object. It chooses the designated folder as the starting point
(root) of the folder tree. (Ordinarily, DESKTOP is the root).
/select,<object>:
Specifies the folder to receive the initial focus.
If "/select" is used, the parent folder is opened and the specified object is selected. Highlights
the designated folder and displays the contents of the parent folder in the right pane.
<object> designates the folder path
'-------------------------------------------------------------------------------------
Avatar
Nicolas
Merci beaucoup de ta réponse et de ton temps,

cependant, il se peut que je ne connaisse pas le nom exact du fichier ou qu e je souhaite obtenir toutes les possibilités en fonction de certains "mo ts-clés".

J'aurais voulu éviter les "sendkeys" mais pour le moment, cela résout m on problème :

ClipboardDemo ActiveCell.Value
Dim chemin: chemin = "C:UsersNicolasDocuments"
Shell "explorer .exe " & chemin, vbmaximizedfocus
Do Events
Application.Wait Now + 2 / 3600 / 24
SendKeys "^f"
Application.Wait Now + 1 / 3600 / 24
SendKeys "^v"
Application.Wait Now + 1 / 3600 / 24
SendKeys "{NUMLOCK}", True

Encore merci et à bientôt.
Avatar
MichD
Si tu veux visualiser seulement les fichiers répondant à une restriction
dans le nom du fichier, tu peux faire ceci. Mon exemple affiche dans l'explorateur
de fichiers Windows seulement les noms des fichiers qui ont la particule "de" comme
dans le nom "Calcul de math" qui ont une extension Excel.

Dans la ligne de code de la procédure Test, il s'agit d'adapter cela * de *.xl*" :
CheminEtFichier = "C:UsersTon profilDocuments* de *.xl*"

Si dans l'explorateur Windows, tu effectues une sélection multiple de fichiers
répondant au critère, la procédure affichera le nom de ces fichiers dans une boîte
de message.

'------------------------------------------
Sub test()
Dim CheminEtFichier As String, LesFichiers As String

CheminEtFichier = "C:UsersDenisDocuments* de *.xl*"

If Dir(CheminEtFichier) <> "" Then
BrowseFile CheminEtFichier, LesFichiers
Else
MsgBox "Aucun fichier ne correspond à la demande"
Exit Sub
End If

If LesFichiers <> "" Then
MsgBox "Nom des fichiers sélectionnés : " & vbCrLf & _
vbCrLf & LesFichiers
Else
MsgBox "Aucune sélection a été effectuée."
End If
End Sub
'------------------------------------------
Function BrowseFile(CheminEtTypeFichier, LesFichiers As String) As String
With Application.FileDialog(msoFileDialogFilePicker)
'Définit un titre pour la boîte de dialogue
.Title = "Choisir le fichier BASE DE DONNÉES EXCEL"
'Empêcher la multi-sélection
.AllowMultiSelect = True
'Répertoire par défaut suivi du type de fichier par défaut
.InitialFileName = CheminEtTypeFichier
'Efface les filtres existants.
.Filters.Clear
.InitialView = msoFileDialogViewProperties
'Affiche la boîte de dialogue
.Show
If .SelectedItems.Count > 0 Then
For a = 1 To .SelectedItems.Count
LesFichiers = LesFichiers & _
Split(.SelectedItems(a), "")(UBound(Split(.SelectedItems(a), ""))) & vbCrLf
Next
End If
End With
End Function
'-------------------------------------------
Avatar
Nicolas
Merci encore pour ton aide,

Cela marche très bien et va me servir beaucoup, mais ... ¿ est-il possi ble de rechercher également dans les sous-dossiers ?

Si je comprends bien, la procédure n'effectue la recherche que dans :
CheminEtFichier = "C:UsersTon profilDocuments* de *.xl*" et non dans
CheminEtFichier = "C:UsersTon profilDocumentsDossier1* de *.xl*" (pa r exemple)

A bientôt,

Nicolas
Avatar
MichD
Cela dépend ce que tu désires...

Si tu veux afficher l'explorateur de fichiers avec seulement un type de fichier particulier,
l'explorateur ne peut pas afficher le contenu des fichiers de plus d'un répertoire à la fois.

Si tu désires obtenir la liste des fichiers qui répondent à un critère de recherche, mais sans
les afficher dans l'explorateur de fichiers, c'est possible... tu peux copier le résultat dans
une feuille de calcul.

Que veux-tu?
Avatar
Nicolas
Lorsque tu mentionnes "un type de fichier particulier" tus veux dire :
xls, doc, pdf... ?

Si c'est le cas, il n'est pas nécessaire de distinguer.

Par contre, j'aurais souvent besoin de pouvoir rechercher :
- dans les différents sous-dossiers possibles,
- avec plusieurs critères : "*calcul*" & "*math*" (par exemple).

L'affichage sur l'explorateur n'est pas "indispensable", mais si c'est poss ible ... merci encore pour ta patience.
Avatar
MichD
Regarde le fichier joint : http://www.cjoint.com/c/EIpmpwwyMRG

Un clic sur le bouton...

Dans la première fenêtre, tu entres le chemin du répertoire qui t'intéresse
Exemple : C:UsersTon ProfilDocuments

Dans la seconde fenêtre, le classeur que tu recherches
Exemple du nom de classeur avec l'expression au moins classeur dans le nom
*classeur*.*

Regarde dans le module1 tu peux activer une ligne de code qui va t'afficher dans le résultat
tous les répertoires qui ont été scannés même si aucun fichier recherché n'a été trouvé.





"Nicolas" a écrit dans le message de groupe de discussion :


Lorsque tu mentionnes "un type de fichier particulier" tus veux dire :
xls, doc, pdf... ?

Si c'est le cas, il n'est pas nécessaire de distinguer.

Par contre, j'aurais souvent besoin de pouvoir rechercher :
- dans les différents sous-dossiers possibles,
- avec plusieurs critères : "*calcul*" & "*math*" (par exemple).

L'affichage sur l'explorateur n'est pas "indispensable", mais si c'est possible ... merci encore
pour ta patience.
Avatar
Nicolas
C'est très rapide !

Je vais voir tout ça un peu plus en détail et je te commente mes doutes ...

Merci beaucoup !

À bientôt.
Avatar
MichD
http://www.cjoint.com/c/EIpnxTXKsjG

Ce classeur corrige une coquille... et seuls les répertoires où il y a des fichiers correspondants
à la demande s'affichent dans la feuille.
Avatar
MichD
| - avec plusieurs critères : "*calcul*" & "*math*" (par exemple).

Si tu veux rechercher seulement les fichiers ayant dans leur nom les
expressions "Calcul" et "Math" dans le nom du fichier, ceci est suffisant,

*Calcul*Math*

Si "Calcul" et "Math" sont des mots séparés dans le nom du fichier
* Calcul * Math *
1 2