Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
945 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Récupérer l'arborescence complète d'un dossier serveur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Récupérer l'arborescence complète d'un dossier serveur

n°2317573
xiky
Posté le 02-07-2018 à 16:22:59  profilanswer
 

Je dois récupérer la liste de l'intégralité des fichiers présents sur une partie d'un serveur, j'utilise un truc trouvé sur le net qui semble fonctionner, sauf qu'il me semble y avoir beaucoup trop de fichiers à gérer.  
J'ai essayé de découper avec une For les dossiers principaux, mais même problème (Erreur 1004)
Est-ce que je dois encore découper au niveau inférieur, sachant que je sais pas trop jusqu'à quelle "profondeur" jpeux me retrouver à devoir chercher les chemins à la main, ou y aurai une solution.
J'utilise VBA parce que c'est principalement ce que je sais utiliser, mais si y a une alternative pas trop compliqué à mettre en place je suis preneur aussi.
 
Merci.
 
 

Citation :


Option Explicit
 
Sub TestListeFichiers()
    Dim Dossier As String
    Dim x As Long
    'Définit le répertoire pour débuter la recherche de fichiers.
    '(Attention à ne pas indiquer un répertoire qu contient trop de sous-dossiers ou de
    'fichiers, sinon le temps de traitement va être très long).
    For x = 1 To 54
    Dossier = Worksheets(2).Range("A" & x).Value
 
    'Appelle la procédure de recherche des fichiers
    ListeFichiers Dossier
    Next
     
    'Ajuste la largeur des colonnes A:E en fonction du contenu des cellules.
    Columns("A:E" ).AutoFit
    MsgBox "Terminé"
End Sub
Sub ListeFichiers(Repertoire As String)
    '
    'Nécessite d'activer la référence "Microsoft Scripting RunTime"
        'Dans l'éditeur de macros (Alt+F11):
        'Menu Outils
        'Références
        'Cochez la ligne "Microsoft Scripting RunTime".
        'Cliquez sur le bouton OK pour valider.
 
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.File
    Dim i As Long
 
    Set Fso = CreateObject("Scripting.FileSystemObject" )
    Set SourceFolder = Fso.GetFolder(Repertoire)
 
    'Récupère le numéro de la dernière ligne vide dans la colonne A.
    i = Range("A65536" ).End(xlUp).Row + 1
 
    'Boucle sur tous les fichiers du répertoire
    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
 
 
    '--- Appel récursif pour lister les fichier dans les sous-répertoires ---.
    For Each SubFolder In SourceFolder.SubFolders
        ListeFichiers SubFolder.Path
    Next SubFolder
 
End Sub
 

mood
Publicité
Posté le 02-07-2018 à 16:22:59  profilanswer
 

n°2317590
patrice337​40
Avec la réponse, c'est facile.
Posté le 02-07-2018 à 21:47:14  profilanswer
 

Bonjour,
 
Un vieil exemple :
https://mon-partage.fr/f/LVBak4Gd/


---------------
Cordialement, Patrice
n°2317601
xiky
Posté le 03-07-2018 à 13:20:40  profilanswer
 

Super merci, ça a fonctionné à merveille :jap:

n°2317768
kiki29
Posté le 07-07-2018 à 01:28:23  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Récupérer l'arborescence complète d'un dossier serveur

 

Sujets relatifs
VBA - Prendre en compte les retours de formuleAide VBA userforme
[VBA] Erreur 4605 lors d'un Publipostage.[PHP / JS] Récupérer ligne txt
Pb VBA dans l'utilisation du FullSeriesCollection(1).XValuesSynchronisation de dossier
Partage de dossier sur Windows 7 EmbeddedRécupérer le contenu d'un input text
Déplacer des fichiers -> dossier avec une partie du nom des fichiersEditer une fonction en VBA.
Plus de sujets relatifs à : [VBA] Récupérer l'arborescence complète d'un dossier serveur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR