Rechercher un fichier sur un disque dur

Résolu/Fermé
Bodo77 Messages postés 4 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 15 septembre 2014 - Modifié par pijaku le 28/08/2014 à 11:30
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 - 1 sept. 2014 à 14:00
Bonjour,
Je viens d'arriver sur ce forum. Mais ce n'est pas la première fois que j'y accède.
J'ai jusqu'à maintenant tout trouvé pour me satisfaire.

Malheureusement, J'ai un problème (petit pour vous) que je n'arrive pas à résoudre :

Sub Commande()
Dim Comp as string
Comp = "Nomdufichier"
Path = "P:\CLIENTS\*\Commandes" & Comp & ".pdf"
If Len(Dir(Path)) = 0 Then
    MsgBox ("Le fichier n'existe pas !")
Else
    ThisWorkbook.FollowHyperlink Path
End If
End Sub


En fait, dans le dossier "CLIENTS", il y a tous les dossiers avec le numéro de client (ex. : 602586, 684256...). Puis pour chaque client, il y a un sous-dossier "Commandes" dans lequel sont rangés tous les PDF.

Cette macro devrait me permettre d'ouvrir le PDF qui se trouve dans un des dossiers CLIENTS.

Ai-je été assez explicite ? J'espère.
Merci
A voir également:

4 réponses

borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
27 août 2014 à 17:04
Comme Polux31 je n'ai pas de boule de cistal donc je me lance pour voir si j'ai compris ta demande :

Sub ChercherPDF(LeDossier As String)

Dim fso As Object
Dossier As Object
Fldr As Object
Dim comp As String
Dim fichier As String
Dim chermin As String

Set fso = CreateObject("scripting.FileSystemObject")
Set Dossier = fso.getfolder(LeDossier)

'examen de chaque dossier client
For Each Flder In Dossier.subfolders
    fichier = Dir(Flder.Path & Application.PathSeparator & "Commande" &_
    Application.PathSeparator & comp & ".pdf")
    If fichier <> "" Then
        chemin = Flder.Path & Application.PathSeparator
        Exit For
Next Flder
    
If fichier = "" Then
    MsgBox "le fichier n'existe pas"
Else
    fichier = chemin & "Commandes" &_
    Application.PathSeparator & comp & ".pdf"
    ThisWorkbook.FollowHyperlink fichier  
End If

End Sub


Sans conviction
2
Bodo77 Messages postés 4 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 15 septembre 2014
1 sept. 2014 à 09:34
Merci beaucoup. Cela marche après quelques petites modif.
En fait, je ne connaissais pas le principe de l'objet. C'est bon maintenant.
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
1 sept. 2014 à 14:00
oublie pas de marquer le post comme résolu ;-)
ravi d'avoir pu aider
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 août 2014 à 14:01
Bonjour,

Il faudrait nous dire où est le problème exactement ?

"Path" est un mot réservé par VB. Peut être en remplaçant par "Dossier":

Sub Commande() 
Dim Comp as string
Dossier As String

Comp = "Nomdufichier" 
Dossier = "P:\CLIENTS\*\Commandes" & Comp & ".pdf" 

If Len(Dir(Dossier)) = 0 Then 
      MsgBox ("Le fichier n'existe pas !") 
Else 
      ThisWorkbook.FollowHyperlink Dossier 
End If 
End Sub

0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
28 août 2014 à 11:34
Bonjour,

A mon humble avis, il te faut parcourir tous les sous dossiers pour trouver ton fichier.
Regarde cette discussion presque similaire.
0
Bodo77 Messages postés 4 Date d'inscription mardi 26 août 2014 Statut Membre Dernière intervention 15 septembre 2014
26 août 2014 à 17:22
Non, ce n'est pas ça du tout. ça ne marche pas.

Si je remplace le "*" par le nom du dossier, il le trouve.
Ce que je veux, c'est quand je ne connais pas ce dossier.
-2
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
27 août 2014 à 14:41
J'interroge ma boule de cristal et quand elle me dira exactement ce que tu cherches à faire, je reviens te donner une solution !!!
0