VBA - accèder au nom de sous-repertoire avec FileSystemeObject

VBA - accèder au nom de sous-repertoire avec FileSystemeObject - VB/VBA/VBS - Programmation

Marsh Posté le 01-10-2008 à 23:30:14    

Bonjour,
 
Je cherche à lister les noms des sous-repertoire qui se trouvent dans un repertoire donné.
Je n'arrive pas à utiliser la propriété Name de l'objet Folder (FileSystemeObject), qui me renvoit une erreur quand je veux l'utiliser.
 
Voici mon code pour l'instant :
 

Citation :

Set oFSO = CreateObject("Scripting.FileSystemObject" ) 'Instanciation de l'objet FileSystemeObject
Set oF1d = oFSO.GetFolder(Repertoire)                       'Instanciation de mon objet repertoire source
 
   For Each subfolder In oF1d.SubFolders                     'Parcours des sous-repertoires de mon objet repertoire
            k = k + 1
            Worksheets("Feuil1" ).Range("A" & k).Select
            ActiveCell.Value = oF1d.Type(subfolder)        
    Next
 
'C'est à l'avant derniere ligne que le bas blesse : erreur "La procédure property Let n'est pas définie et la  procédure   property get n'a pas renvoyé d'objet"


 
Merci pour votre aide !

Reply

Marsh Posté le 01-10-2008 à 23:30:14   

Reply

Marsh Posté le 01-10-2008 à 23:34:26    

Reply

Marsh Posté le 01-10-2008 à 23:46:03    

Merci pour la réponse, mais cependant ces codes ne permettent que de lister les fichiers contenus dans les dossiers.
Dans le cas présent je veux juste m'arreter aux noms des dossiers.  
 
Je sais récupérer le chemin d'accès du dossier, mais pas juste
le nom du dossier...

Reply

Marsh Posté le 01-10-2008 à 23:57:14    

Dans le dernier exemple tu as les chemins et les fichiers


.....
        With ShFichiers  
            .Cells(NbFichiers, 1) = sChemin  
            .Cells(NbFichiers, 2) = Fichier  
        End With
......


 
Utiliser Pos=InStrRev(sChemin , "\" ) puis Right avec Len(sChemin ) - Pos


Message édité par kiki29 le 02-10-2008 à 00:05:30
Reply

Marsh Posté le 02-10-2008 à 02:59:42    

Re, j'avais oublié, normalement GetBaseName est utilisé pour retourner le nom du fichier sans son extension mais en lui passant le chemin il retourne le dossier contenant le fichier concerné


        With ShFichiers
            .Cells(NbFichiers, 1) = FSO.GetBaseName(sChemin)
            .Cells(NbFichiers, 2) = Fichier
        End With


 
D'ou l'importance de développer en Early Binding et ensuite de passer en Late Binding ...


Message édité par kiki29 le 02-10-2008 à 03:18:54
Reply

Marsh Posté le 02-10-2008 à 09:17:59    

GetBaseName retourne bien le nom du repertoire comme il le fait pour un fichier, ca marche, merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed