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.
Oui. Il suffit de les ranger dans un petit tableau dans une boucle tant que le nom rendu n'est pas vide en redemandant un Dir sans paramètre à la fin. Puis indiquer ceux trouvés dans un nouvel InputBox demandant celui qu'on veut. essayez de l'écrire, je corrigerai si vous n'arrivez pas à le mettre au point.
 
Re : Aide sur macro pour rechercher dossier

Bonjour.
Oui. Il suffit de les ranger dans un petit tableau dans une boucle tant que le nom rendu n'est pas vide en redemandant un Dir sans paramètre à la fin. Puis indiquer ceux trouvés dans un nouvel InputBox demandant celui qu'on veut. essayez de l'écrire, je corrigerai si vous n'arrivez pas à le mettre au point.

Je vais essayer mais je sais pas trop comment fonctionne une boucle.
 
Re : Aide sur macro pour rechercher dossier

Une boucle bien écrite ça fonctionne bien…
Cherchez dans l'aide du coté des tableaux, des instruction Do … Loop et For … Next.
J'ai écrit une procédure complète qui marche chez moi.
Voici les instructions qui la composent classées par ordre alpha. À vous de les remettre dans l'orde convenable.
Code:
      Nbr = Nbr + 1: ReDim Preserve TDos(1 To Nbr): TDos(Nbr) = XNom: End If
   Exit Sub: End If
   For N = 1 To Nbr: TMsg(N) = N & ": """ & TDos(N) & """,": Next N
   If (GetAttr(Racine & XNom) And vbDirectory) = vbDirectory Then
   If N < 1 Or N > Nbr Then Exit Sub
   MsgBox "Le client n'existe pas.", vbCritical, "Nom"
   N = 0: On Error Resume Next: N = InputBox(Join(TMsg, vbLf), "Nom", 1): On Error GoTo 0
   N = 1
   ReDim TMsg(0 To Nbr): TMsg(0) = "Lequel voulez vous ? (1 à " & Nbr & ")"
   XNom = Dir: Loop
   XNom = TDos(N)
Const Racine = "D:\Test\" ' "C:\Documents and Settings\luck\Mes documents\" '
Dim XNom As String, TDos() As String, Nbr As Long, TMsg() As String, N As Long
Do While XNom <> ""
Else
ElseIf Nbr = 1 Then
End Sub
If Nbr > 1 Then
If XNom = "" Then Exit Sub
Shell "C:\WINDOWS\explorer.exe " & Racine & TDos(N), vbMaximizedFocus
'Shell "C:windowsexplorer.exe " & Racine & TDos(N), vbMaximizedFocus ' Ne fonctionne pas chez moi.
Sub RechercherDossier()
XNom = Dir(Racine & "*" & XNom & "*", vbDirectory)
XNom = InputBox("Quel client recherchez vous", "Nom")
La prochaine fois que vous voudrez une réponse plus rapide, sans avoir d'énigme à résoudre, joignez un classeur.
Je suis assez mal disposé à priori à l'égard des demandeurs qui m'obligent à ouvrir un nouveau classeur, lorsqu'il m'arrive d'y répondre quand même.
 
Re : Aide sur macro pour rechercher dossier

C'est que l'instruction Dim n'est pas à la bonne place. Ça doit être la 3ième ligne.
Névrose ? Nbr vous voulez dire !

Oui Nbr. Désolé.

Je l'ai bien mise sur la 3ème ligne.
 

Pièces jointes

  • image.jpg
    image.jpg
    72.3 KB · Affichages: 31
  • image.jpg
    image.jpg
    72.3 KB · Affichages: 36
  • image.jpg
    image.jpg
    72.3 KB · Affichages: 37
Dernière édition:
Re : Aide sur macro pour rechercher dossier

Re

Avec l'image à l'endroit, c'est plus simple que de devoir faire le poirier 🙂.
 

Pièces jointes

  • image2.jpg
    image2.jpg
    179.6 KB · Affichages: 32
  • image2.jpg
    image2.jpg
    179.6 KB · Affichages: 33
  • image2.jpg
    image2.jpg
    179.6 KB · Affichages: 38
Re : Aide sur macro pour rechercher dossier

Oh, je m'en serais accomodé ! Quitte à la retourner avec Photo Editor.
La 2 ième instruction n'est pas celle qui devrait être là, c'est :
VB:
Const Racine = "D:\Test\" ' "C:\Documents and Settings\luck\Mes documents\" '
 
Re : Aide sur macro pour rechercher dossier

Oui, mais quand vous y serez arrivé vous comprendrez forcément mieux ce que vous aurez fait, et vous serez peut être capable de faire d'autres choses.
Information : l'instruction XNom = TDos(N) ne sert à rien vous pouvez l'enlever

Allez pour vous aider un peu, voici des commentaires à mettre :
VB:
Rem. —— Déclaration de constante et de variables.
Rem. —— Saisie du nom désiré.
 ' Abandon si aucune réponse fournie.
Rem. —— Recherche du 1er nom, puis boucle sur les suivants.
 ' Tant que que le nom rendu par Dir n'est pas vide :
 ' S'il s'agit bien d'un répertoire :
 ' … on l'ajoute dans la table
 ' Nom suivant
Rem. —— Test selon le nombre de noms trouvés
 ' S'il y a plus d'un :
 ' On fabrique un tableau avec un élément 0 devant,
 ' … et qui reprend ceux du 1er précédés de leur numéros
 ' On saisit le numéro désiré.
 ' Abandon si aucune réponse valide fournie.
 ' S'il y en a exactement 1 :
 ' On se met dans le même cas que s'il avait été répondu 1 à la saisie du numéro.
 ' Si donc il n'en exste aucun :
 ' on le dit …
 ' … et on Abandonne la procédure.
Rem. —— Épilogue : exécution de l'exploreur
Et cette fois il sont dans l'ordre !
Ceux qui commencent par "Rem. ——" sont à mettre devant une instruction, les autres juste derrière sur la même ligne.
 
- 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