Aide sur macro pour rechercher dossier

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 !

matthieu2701

XLDnaute Occasionnel
Bonjour,

J'ai créé une inputbox dans laquelle il faudra saisir le nom ou le numéro de dossier du client recherché. J'aimerais que lorsque le NOM ou le numéro de dossier est retrouvé, que le dossier en question s'ouvre.

Actuellement, si le dossier existe dans le chemin définit, c'est le dossier "Mes documents" qui s'ouvre.

De plus, je souhaite que la recherche se fasse comme dans l'explorateur windows. Par exemple, j'ai le dossier qui d'appelle MARTIN Luc 100123.

Je souhaite qu'il s'ouvre si je saisi MARTIN ou 100123 et non pas si je saisie le nom complet du dossier. Car j'ai rarement toutes les informations.

J'ai trouvé ce code sur internet. J'arrive pas à le modifier pour arriver à ce que je souhaite. Pouvez vous m'aider svp ?

PHP:
Sub RechercherDossier()

xnom = InputBox("Quel client recherchez vous", "Nom")
Chemin = "d:\Test\" & xnom

If Dir(Chemin, vbDirectory) = "" Then
MsgBox "Le client n'existe pas"
Exit Sub
Else
Shell "C:\windows\explorer.exe Chemin", vbMaximizedFocus
End If

End Sub

Merci par avance
 
Re : Aide sur macro pour rechercher dossier

Bonjour Matthieu

J'utilise ce code (remplace activecell par chemin):

Code:
Shell "C:\Windows\explorer.exe " & ActiveCell & "", vbMaximizedFocus

Là je peux pas tester car je suis sur mac. Le PC est à mon boulot. Ce code va permettre l'ouverture de mon dossier ? Mais je serais toujours obligé de noter le nom exact du dossier pour qu'il s'ouvre ?
 
Re : Aide sur macro pour rechercher dossier

Re

Mais je serais toujours obligé de noter le nom exact du dossier pour qu'il s'ouvre ?

Par rapport à ton code, je n'ai traité que la partie pour ouvrir le chemin en le rentrant manuellement (il faut y aller par étape). Teste le et après reviens pour la suite. Par contre réfléchi un peu à savoir comment veux tu extraire les noms de dossier, peut-être avec un Dir.
 
Re : Aide sur macro pour rechercher dossier

Re

J'ai deux éléments. Soit en recherche par le nom soit par le numéro de dossier.

Cela dépend aussi de combien de dossiers car si tu en as 10000, cela peut-être long pour la recherche. Dans ce cas, je préfère extraire la liste des dossiers sur une feuille puis faire la recherche sur la feuille.
 
Re : Aide sur macro pour rechercher dossier

Re

Voici un code que j'ai trouvé avec la touche F1 sur Dir pour avoir la liste des dossiers de C:\ (chemin à adapter).

J'ai juste rajouté nlig= 1 et la ligne contenant "dossier = MyPath & MyName"

Code VBA:
Sub Dir_Dossier()
'Extrait de l'aide F1
Dim MyFile, MyPath, MyName

nlig = 1

' Renvoie "WIN.INI" (sur Microsoft Windows) si ce fichier existe.
MyFile = Dir("C:\WINDOWS\WIN.INI")

' Renvoie le nom de fichier avec l'extension indiquée. Si plusieurs
' fichiers *.ini existent, le premier fichier trouvé est renvoyé.
MyFile = Dir("C:\WINDOWS\*.INI")

' Appelle de nouveau Dir sans argument pour renvoyer le
' fichier *.INI suivant dans le même dossier.
MyFile = Dir

' Renvoie le premier fichier *.TXT avec l'attribut fichier caché.
MyFile = Dir("*.TXT", vbHidden)

' Affiche les noms dans C:\ représentant des dossiers.
MyPath = "c:\" ' Définit le chemin d'accès.
MyName = Dir(MyPath, vbDirectory) ' Extrait la première entrée.
Do While MyName <> "" ' Commence la boucle.
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If MyName <> "." And MyName <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(MyPath & MyName) _
And vbDirectory) = vbDirectory Then
'Debug.Print MyName ' Affiche l'entrée uniquement si elle
dossier = MyPath & MyName: Cells(nlig, 1) = dossier: nlig = nlig + 1
End If ' représente un dossier.
End If
MyName = Dir ' Extrait l'entrée suivante.
Loop

End Sub
 
Re : Aide sur macro pour rechercher dossier

Bonjour
À essayer quand même tout simplement :
VB:
Sub RechercherDossier()
Const Racine = "D:\Test\"
Dim XNom As String
xnom = InputBox("Quel client recherchez vous", "Nom")
xnom = Dir(Racine & "*" & xnom & "*", vbDirectory)
If xnom = "" Then
   MsgBox "Le client nexiste pas"
Else
   Shell "C:windowsexplorer.exe " & Racine & XNom, vbMaximizedFocus
   End If
End Sub
 
Dernière édition:
Re : Aide sur macro pour rechercher dossiercine corresp

Bonjour
À essayer quand même tout simplement :
VB:
Sub RechercherDossier()
Const Racine = "D:\Test\"
Dim XNom As String
xnom = InputBox("Quel client recherchez vous", "Nom")
xnom = Dir(Racine & "*" & xnom & "*", vbDirectory)
If xnom = "" Then
   MsgBox "Le client nexiste pas"
Else
   Shell "C:windowsexplorer.exe " & Racine & XNom, vbMaximizedFocus
   End If
End Sub

Merci. Je testerais et je te tiens au courant.

Le "racine" correspond à quoi ?

Merci
 
Re : Aide sur macro pour rechercher dossier

Bonjour
À essayer quand même tout simplement :
VB:
Sub RechercherDossier()
Const Racine = "D:\Test\"
Dim XNom As String
xnom = InputBox("Quel client recherchez vous", "Nom")
xnom = Dir(Racine & "*" & xnom & "*", vbDirectory)
If xnom = "" Then
   MsgBox "Le client nexiste pas"
Else
   Shell "C:windowsexplorer.exe " & Racine & XNom, vbMaximizedFocus
   End If
End Sub

Avec cela si j'ai un dossier nommé MARTIN Luc 100123 et que dans l inputbox je tape MARTIN ou 100123, le dossier de MARTIN Luc 100123 va s ouvrir ?
 
- 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

Discussions similaires

Réponses
2
Affichages
511
Réponses
3
Affichages
548
Réponses
6
Affichages
2 K
Retour