VIVEZ LE
FOOTBALL !

VBA VB6 - Lire tous les fichiers, répertoires et sous/rép


La fonction Scripting.FileSystemObject remplace avantageusement Application.FileSearch qui d'ailleurs, n'est plus disponible à partir d'Office 2007.
Un exemple pour mémoriser tous les fichiers images d'un répertoire.
À coller dans un module.bas :

Option Explicit        
Dim Data()        
Dim NBdata As Integer        

'Obtenir tous les fichiers d'un répertoire et éventuellement des sous-répertoires        
'Si SousRep = true        
'Le répertoire source doit être dans Rep        
Public Function LireRepertoir(ByVal Rep As String, Optional SousRep As Boolean) As Integer        
Dim Obj, RepP, F, S, sf, F1, Fsous        
Dim i As Integer, Ext As String        
Dim Chem As String        
Dim T As Double        
   ' Application.MousePointer = 13 'Pour VB6       
    Set Obj = CreateObject("Scripting.FileSystemObject")        
    Set RepP = Obj.Getfolder(Rep)        
    Chem = Rep: If Right(Chem, 1) <> "\" Then Chem = Chem & "\"        
            
    Set sf = RepP.subfolders        
    Set F = RepP.Files        
    GoSub RempliData 'les fichiers du répertoire principal        
    If SousRep Then 'les fichiers des sous-répertoires        
        For Each Fsous In sf        
            Set RepP = Fsous        
            Set F = RepP.Files        
            GoSub RempliData        
        Next Fsous        
    End If        
Exit Function        
'**********************************************************************        
RempliData:        
    For Each F1 In F        
        Ext = LCase(Right(F1.Name, 3))        
        If Ext = "bmp" Or Ext = "jpg" Then 'extension à adapter        
            ReDim Preserve Data(5, NBdata)        
            Data(0, NBdata) = F1.Name        
            Data(1, NBdata) = F1.ParentFolder & "\" & F1.Name        
            Data(2, NBdata) = F1.DateCreated        
            Data(3, NBdata) = F1.DateLastAccessed        
            Data(4, NBdata) = F1.DateLastModified        
            T = F1.Size        
            If T < 99999 Then        
                Data(5, NBdata) = T & " Bi"        
            ElseIf T < 999999 Then        
                Data(5, NBdata) = Round(T / 1000, 1) & " Ko"        
            Else        
                Data(5, NBdata) = Round(T / 1000000, 1) & " Mo"        
            End If        
            NBdata = NBdata + 1        
        End If        
    Next F1        
Return        
            
End Function


Mémorise également les infos sur les fichiers.
À adapter en fonction des besoins.
Publié par lermite222 - Dernière mise à jour le 12 mai 2010 à 20:52 par aquarelle
Ce document intitulé « VBA VB6 - Lire tous les fichiers, répertoires et sous/rép » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Suggestions
  •  VBA VB6 - Lire tous les fichiers, répertoires et sous/rép
  •  VBA VB6 - Quand le test DIR(Répertoir) plante ! » Fiches pratiques : Le test le plus simple pour tester si le chemin d'un répertoir est valide c'est bien évidemment... If Dir(MonRepertoir) = "" Then 'Le répertoir n'existe pas ou n'est pas bien libellé End If Sauf que... Si le chemin du répertoir...
  •  [VB6/VBA] Sélectionner une liste de fichier avec explorateur Win » Fiches pratiques : Sélectionner une liste de fichier (ou un seul) avec l'API GetOpenFileName. Une fonction simplifiée utilisant l'explorateur Windows . Ce code fonctionne également en VBA à condition d'adapter les contrôles. Vous pouvez modifiez Le titre Le...
  •  [Excel VBA] Créer des dossiers sous VBA (Résolu) » Meilleure réponse: Une fonction qui fait ce que tu veux : 'Fonction qui vérifie si le dossier spécifié existe Function RepertoireExiste(Chemin As String) As Boolean On Error Resume Next RepertoireExiste = GetAttr(Chemin) And vbDirectory End Function Après
  •  Afficher le contenu d'un repertoire en PHP (Résolu) » Meilleure réponse: tiens, regarde si ca te conviens, j'ai fait ca y'a quelques semaines sur ccm, je retrouve plus la version in line... mais tu auras pas de difficultés à le tester et a le mettre à ta guise : <?php $dir_nom = '.'; // dossier listé (pour l
  •  Lister les noms de fichiers d'un repertoire » Meilleure réponse: Bonjour, Sous VB et VBA vous pouvez utiliser les objets de scripting ! Exemple : Sub ListeFichier Const ctePourLecture = 1 Const ctePourEcrire = 2 Const ctePourAjouter = 8 Dim objFSO, objDossier, objFichier, objResultat Dim Repertoire,
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
VBA - Créer une série de boutons sur un feuille Excel
VBA VB6 - Forcer l'ouverture d'un ComboBox