IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 34 fois
Vote des utilisateurs
0 
0 
Détails
Licence : Non renseignée
Mise en ligne le 3 janvier 2011
Langue : Français
Référencé dans
VBS
Navigation

Fonction récursive de parcours d'un répertoire

Un code VBSCript, qui pourra vous servir de base pour créer vos fonctions récursives de gestions des fichiers d'un répertoire ( et de ses sous-répertoires)

adaptez la fonction TraiteFichier à votre traitement.
Avatar de EricS
Futur Membre du Club https://www.developpez.com
Le 02/01/2011 à 23:46
Bonjour,

C'est pile-poil le programme que je voulais mais en VBA. A noter dans ton programme une petite erreur dans dim oSubFloder au lieu de Dim oSubFolder.
Merci encore, voilà une super base de travail pour moi qui commence la programmation.

Eric


Voilà l'adaptation du programme en VBA:


Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'Declaration
Dim stRepInital 'Nom du répertoire à parcourir
Dim oFSO, oFld, oSubFolder

'==============================================
'Fonction récursive de parcours d'un répertoire
'==============================================
'http://vb.developpez.com/telecharger/detail/id/797/Fonction-recursive-de-parcours-d-un-repertoire

Sub ParcoursRepT()
    Call stRecInit
    Call ParcoursRep(stRepInital)
End Sub

Sub stRecInit()
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    stRepInital = ThisWorkbook.Path 'lance à partir du repertoire ou il y a le code
End Sub

Sub ParcoursRep(ByVal stRep As String)
    MsgBox "Traite : " & stRep
    If oFSO.FolderExists(stRep) Then
    Set oFld = oFSO.GetFolder(stRep)
    MsgBox "Size :" & oFld.Size
        If oFld.SubFolders.Count > 0 Then 'Teste le nombre de sous-répertoire dans stRep
            MsgBox "Name :" & oFld.Path & "oFld.Count :" & oFld.SubFolders.Count
            For Each oSubFolder In oFld.SubFolders
                ParcoursRep oSubFolder.Path 'appel récursif de la procédure
            Next
        Else
            If oFld.Files.Count > 0 Then 'Teste le nombre de fichier dans le sous-répertoire
                MsgBox "Non Vide fichiers : " & oFld.Files.Count
            Else
                MsgBox "===> A detruire ===> " & oFld.Name & "SubFolders.Count :" & oFld.SubFolders.Count
            End If
        End If
    End If
End Sub
Avatar de SfJ5Rpw8
Expert éminent sénior https://www.developpez.com
Le 03/01/2011 à 16:55
Merci EricS...

j'ai corrigé et rajouté l'option Explicit, qui m'aurait permis de déceler cette erreur ( sans conséquence sur le fonctionnement du code) plus tôt.

Cdt.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.