Ouvrir un répertoir et lister les fichier VBA
Résolu
mmmxtina
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
2pax.cruz -
2pax.cruz -
Bonjour tous le monde!!!!
Je viens en quête de votre savoir une fois de plus!!!
Alors, j'aimerai savoir comment faire pour :
- ouvrir un dossier, c'est-à-dire la fonction qui ouvre une fenêtre te demandant de sélectionner le dossier qu'il faut ouvrir
- puis lister tous les fichier .txt de ce dossier, une fois qu'il a été sélectionner
En fait j'aimerai qu'ils soient listés un par un, car je dois récupérer des informations à l'interieur de ces fichiers txt.
Voilà. une idée?
Merci beaucoup à tous!
Je viens en quête de votre savoir une fois de plus!!!
Alors, j'aimerai savoir comment faire pour :
- ouvrir un dossier, c'est-à-dire la fonction qui ouvre une fenêtre te demandant de sélectionner le dossier qu'il faut ouvrir
- puis lister tous les fichier .txt de ce dossier, une fois qu'il a été sélectionner
En fait j'aimerai qu'ils soient listés un par un, car je dois récupérer des informations à l'interieur de ces fichiers txt.
Voilà. une idée?
Merci beaucoup à tous!
A voir également:
- Ouvrir un répertoir et lister les fichier VBA
- 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
2 réponses
Bonjour,
Il faut tout d'abord déclarer la référence : Microsoft Scripting Runtime.
Cette fonction ouvre le browser et retourne le chemin du fichier sélectionner.
La suivante stocke dans un tableau passé en référence à la fonction tout les fichiers d'un répertoire passé en paramètre. On peut passer également une extension (optionale).
;o)
Il faut tout d'abord déclarer la référence : Microsoft Scripting Runtime.
Public Function chooseFolder() As String Dim objShell As Object, objFolder As Object, oFolderItem As Object Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&) On Error Resume Next Set oFolderItem = objFolder.Items.Item chooseFolder = oFolderItem.Path
Cette fonction ouvre le browser et retourne le chemin du fichier sélectionner.
La suivante stocke dans un tableau passé en référence à la fonction tout les fichiers d'un répertoire passé en paramètre. On peut passer également une extension (optionale).
'********************************************************************* ' Fonction qui renvoie la liste de tous les fichier d'un répertoire ' Nécessite la référence Microsoft Scripting Runtime '********************************************************************* Public Function AllFilesInFolder(ByVal NomDossier As String, ByRef myTab, Optional ByVal ExtentionType As String) As Boolean Dim fso As Object, dossier As Object, Fich As Object Dim Files As Object, File As Object Dim max As Long, ext As String 'Initialisation du tableau ReDim myTab(0) ' ' Création de l'objet FSO On Error Resume Next ' AllFilesInFolder_Error Set fso = CreateObject("Scripting.FileSystemObject") ' Si le nom du dossier est vide, alors je sort de la fonction If NomDossier = "" Then Exit Function ' Stock les sous-répértoires dans l'objet dossier Set dossier = fso.GetFolder(NomDossier) ' stock dans l'objet Files tous les fichiers de l'objet dossier Set Files = dossier.Files ' s'il y a plus d'un fichier If Files.Count <> 0 Then max = 0 ' pour tous les objets fichiers dans l'objet files For Each File In Files ' ' je récupère le nom du fichier via l'objet Fich Set Fich = fso.GetFile(File) ' si l'extension n'est pas renseignée ext = ExtentionType If ExtentionType = "" Then ext = fso.GetExtensionName(File) ' If UCase(fso.GetExtensionName(File)) = UCase(ext) Then max = max + 1 ' j'augmente la taille de mon tableau résultat ReDim Preserve myTab(1 To max) ' Je stock en fin de tableau mon nom de fichier myTab(max) = File End If Next ' Je retourne le tableau complet des nom de fichiers End If ' ' Libère tous les objets Set fso = Nothing Set dossier = Nothing Set Fich = Nothing Set Files = Nothing Set File = Nothing ' If Err.Number = 0 Then AllFilesInFolder = True Exit Function Else AllFilesInFolder = False MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure AllFilesInFolder" End If End Function
;o)