Rechercher un fichier sur un disque dur

Résolu
Bodo77 Messages postés 4 Statut Membre -  
borntobealive Messages postés 167 Statut Membre -
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

4 réponses

  1. borntobealive Messages postés 167 Statut Membre 7
     
    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
    1. Bodo77 Messages postés 4 Statut Membre
       
      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
    2. borntobealive Messages postés 167 Statut Membre 7
       
      oublie pas de marquer le post comme résolu ;-)
      ravi d'avoir pu aider
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    A mon humble avis, il te faut parcourir tous les sous dossiers pour trouver ton fichier.
    Regarde cette discussion presque similaire.
    0
  4. Bodo77 Messages postés 4 Statut Membre
     
    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
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      J'interroge ma boule de cristal et quand elle me dira exactement ce que tu cherches à faire, je reviens te donner une solution !!!
      0