Ouvrir un fichier
El Baron
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Ouvrir un fichier
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment ouvrir un fichier 7z - Guide
1 réponse
Bonjour,
Essaies ce code :
Cordialement
Patrice
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