Ouvrir un fichier
El Baron
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
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
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
-
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