Ouvrir un fichier

El Baron -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais utiliser VBA pour ouvrir un fichier dont j'ai le nom mais le chemin m'est inconnu partiellement. Dans l'exemple ci-bas, c'est la partie blablabla qui m'est inconnu.

Pourriez-vou m'aider SVP ;)

Ex: fichier au nom de 1234-5F / chemin ou répertoire X:\Sous\1234-5 blablabla\1234-5F

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Essaies ce code :

    'Ajouter une référence à Microsoft Scripting Runtime
    
    Private Sub Cherche_et_Ouvre_Fichier()
    ' Cherche et ouvre un fichier excel contenu dans un (sous-)répertoire.
    '
      Call OuvrirFichier("X:\Sous", "1234-5F.xls")
    End Sub
      
    Private Sub OuvrirFichier(strChemin As String, strNomFichier As String)
    ' Procédure récursive qui ouvre un fichier dans un (sous-)dossier
    '
    ' Arguments : strChemin           [in] Chemin du dossier à explorer
    '             strNomFichier       [in] Nom du fichier à ouvrir
    '
    ' 29/05/13    Patrice             Version 1.0.0
    '
    Dim objFSO As FileSystemObject         'File System Object
    Dim objRep As Scripting.Folder         'Dossier à analyser
    Dim objSubRep As Scripting.Folders     'Collection de Sous-dossiers
    Dim objSubRepItem As Scripting.Folder  'Sous-dossier
    Dim objSubFile As Scripting.Files      'Collection des fichiers du dossier
    Dim objSubFileItem As Scripting.File   'Fichier cherché
    
    On Error Resume Next
    'Explorer le dossier
    Set objFSO = New FileSystemObject
    Set objRep = objFSO.GetFolder(strChemin)                'dossier
    Set objSubRep = objRep.SubFolders                       'sous-dossiers
    '- traiter chaque sous-dossier
    For Each objSubRepItem In objSubRep
      Call OuvrirFichier(objSubRepItem.Path, strNomFichier)    'appel recursif
    Next
    Set objSubFile = objRep.Files                           'fichiers
    '- analyser chaque nom de fichier
    For Each objSubFileItem In objSubFile
      If objSubFileItem.Name = strNomFichier Then
        'Ouvre le fichier trouvé
        Workbooks.Open Filename:=objSubFileItem.Path, UpdateLinks:=xlUpdateLinksAlways
      End If
    Next
    Set objFSO = Nothing
    Set objRep = Nothing
    Set objSubRep = Nothing
    Set objSubRepItem = Nothing
    Set objSubFile = Nothing
    Set objSubFileItem = Nothing
    
    End Sub 

    Cordialement
    Patrice
    0