Ouvrir un répertoir et lister les fichier VBA
Résolu/Fermé
mmmxtina
Messages postés
67
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
9 avril 2013
-
24 juin 2009 à 09:54
2pax.cruz - 13 juil. 2010 à 15:21
2pax.cruz - 13 juil. 2010 à 15:21
A voir également:
- Ouvrir un répertoir et lister les fichier VBA
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
2 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
24 juin 2009 à 10:31
24 juin 2009 à 10:31
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)