Ouvrir un fichier

El Baron -  
Patrice33740 Messages postés 8561 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

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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