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

Mettez le curseur texte sur ce mot (et d'ailleurs aussi sur tout autres mots du langage dont vous voulez apprendre la signification) puis touche F1. Rem normalement ça doit être une abréviation de "Remark"
 
Re : Aide sur macro pour rechercher dossier

Bonsoir.
Voici le corrigé :
VB:
Sub RechercherDossier()
Rem. —— Déclaration de constante et de variables.
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
Rem. —— Saisie du nom désiré.
XNom = InputBox("Quel client recherchez vous", "Nom")
If XNom = "" Then Exit Sub ' Abandon si aucune réponse fournie.
Rem. —— Recherche du 1er nom, puis boucle sur les suivants.
XNom = Dir(Racine & "*" & XNom & "*", vbDirectory)
Do While XNom <> "" ' Tant que le nom rendu par Dir n'est pas vide :
   If (GetAttr(Racine & XNom) And vbDirectory) = vbDirectory Then ' S'il s'agit bien d'un répertoire :
      Nbr = Nbr + 1: ReDim Preserve TDos(1 To Nbr): TDos(Nbr) = XNom: End If ' … on l'ajoute dans la table
   XNom = Dir: Loop ' Nom suivant
Rem. —— Test selon le nombre de noms trouvés
If Nbr > 1 Then ' S'il y en a plus d'un :
   ReDim TMsg(0 To Nbr): TMsg(0) = "Lequel voulez vous ? (1 à " & Nbr & ")" ' On fabrique un tableau avec un élément 0 devant,
   For N = 1 To Nbr: TMsg(N) = N & ": """ & TDos(N) & """": Next N ' … et qui reprend ceux du 1er précédés de leurs numéros
   N = 0: On Error Resume Next: N = InputBox(Join(TMsg, vbLf), "Nom", 1): On Error GoTo 0 ' On saisit le numéro désiré.
   If N < 1 Or N > Nbr Then Exit Sub ' Abandon si aucune réponse valide fournie.
ElseIf Nbr = 1 Then ' S'il y en a exactement 1 :
   N = 1 ' On se met dans le même cas que s'il avait été répondu 1 à une saisie du numéro.
Else ' Si donc il n'en exste aucun :
   MsgBox "Le client n'existe pas.", vbCritical, "Nom" ' on le dit …
   Exit Sub: End If ' … et on abandonne la procédure.
Rem. —— Épilogue : exécution de l'exploreur
'Shell "C:windowsexplorer.exe " & Racine & TDos(N), vbMaximizedFocus ' Ne fonctionne pas chez moi.
Shell "C:\WINDOWS\explorer.exe " & Racine & TDos(N), vbMaximizedFocus
End Sub
Qu'est ce que vous ne compreniez pas, ou ne comprenez toujours pas ?
 
Dernière édition:
- 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