IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Récupérer noms de répertoires contenus dans un répertoire [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Récupérer noms de répertoires contenus dans un répertoire
    Bonjour le forum,

    Amis connaisseurs de vba...

    Voilà, j'ai un répertoire "ABCD" qui contient de nombreux autres répertoires (plusieurs dizaines). J'aimerais écrire une macro excel qui parcourt ABCD et récupère et copie le nom de chaque dossier (et non fichier !) contenu dans ABCD, les uns en-dessous des autres, dans les cellules d'un classeur excel.

    Si vous aveez une petite idée sur la question...

    Merci d'avance !


    Configuration:
    Windows XP
    Office 2003

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Un peit tour par la faq, je pense que ca devrais te donner une piste, il te suffit de ne pas afficher les fichier affiche les infor des subfolders
    (je ne peux pas ajouté de référence sur mon ordi du coup, je ne peux pas t'aider d'avantage)

    Essaye de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
        For Each FileItem In SourceFolder.Files
            'Inscrit le nom du fichier dans la cellule
            Cells(i, 1) = FileItem.Name
            'Ajoute un lien hypertexte vers le fichier
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
                Address:=FileItem.ParentFolder & "\" & FileItem.Name
            'Indique la date de création
            Cells(i, 2) = FileItem.DateCreated
            'Indique la date de dernier acces
            Cells(i, 3) = FileItem.DateLastAccessed
            'Indique la date de dernière modification
            Cells(i, 4) = FileItem.DateLastModified
            'Nom du répertoire
            Cells(i, 5) = FileItem.ParentFolder
     
            i = i + 1
        Next FileItem
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
            'Inscrit le nom du fichier dans la cellule
            Cells(i, 1) = SourceFolder.Name
            'Ajoute un lien hypertexte vers le fichier
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
                Address:=SourceFolder.ParentFolder & "\" & FileItem.Name
            'Indique la date de création
            Cells(i, 2) = SourceFolder.DateCreated
            'Indique la date de dernier acces
            Cells(i, 3) = SourceFolder.DateLastAccessed
            'Indique la date de dernière modification
            Cells(i, 4) = SourceFolder.DateLastModified
            'Nom du répertoire
            Cells(i, 5) = SourceFolder.ParentFolder
     
            i = i + 1
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Ca pourra peut-être t'aider.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub LireRepertoir()
    'lire le répertoir et mettre les noms sous/répertoir dans une feuille excel
    Dim fs, F, f1, sf
    Dim Chemin As String
    Dim Lig As Long
    Dim FL1 As Worksheet
        Chemin = "D:\" 'adapter au répertoir où sont situés les dossiers.
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set F = fs.GetFolder(Chemin)
        Set sf = F.SubFolders
        Set FL1 = Workbooks("Classeur1").Sheets("Feuil1")
        For Each f1 In sf
            Lig = Lig + 1
            FL1.Cells(Lig, 1) = f1.Name
        Next
    End Sub
    A+

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci beaucoup !
    Merci à vous deux pour la rapidité de vos réponses !

    Je n'ai essayé pour l'instant que la deuxième solution et elle fonctionne parfaitement !! Exactement le comportement que je souhaitais pour ma macro !

    Merci encore...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Récupérer dans une table la liste des fichiers contenus dans un répertoire
    Par possible924 dans le forum VBA Access
    Réponses: 6
    Dernier message: 22/02/2013, 23h00
  2. Réponses: 2
    Dernier message: 01/04/2009, 14h54
  3. Réponses: 1
    Dernier message: 01/12/2008, 19h03
  4. Réponses: 7
    Dernier message: 10/12/2007, 12h27
  5. Réponses: 5
    Dernier message: 11/10/2006, 03h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo