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 :

Connaître le nombre de fichiers d'un volume ou répertoire et sous-réperertoires


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut Connaître le nombre de fichiers d'un volume ou répertoire et sous-réperertoires
    J'aimerais connaître le nombre de fichiers d'un volume ou d'un répertoire sans avoir à les compter. Une solution par les API de Windows ?
    Par avance, merci

  2. #2
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    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
    Private Sub CommandButton1_Click()
    Dim fso As Object, Dossier As Object
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
                Set Dossier = fso.GetFolder(Directory)
     
                Cpte = Cpte + Dossier.Files.Count
     
                'traitement récursif des sous dossiers
     
     
                Set fso = Nothing
    MsgBox Cpte
    End Sub
    je sais pas si sa t interesse, je n utilise pas d API.

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Merci Tomy.
    Ok, ma question est mal posée :
    J'aimerais connaître le nombre de fichiers d'un volume ou d'un répertoire et de leurs sous-répertoires sans avoir à les compter.
    Sinon, j'ai déjà une fonction récursive qui fait ça.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir, ousk,

    je ne connais personnellement pas d'autres moyens.

    Je te précise en outre que seuls les fichiers non cachés seraient comptés par inventaire récursif. Il faut donc (en récursivité) et qu'il convient donc de préciser que tous les attributs doivent être acceptés.

    tu observeras d'ailleurs que Microsoft fait la même chose depuis l'explorateur. cherche par exemple les propriétés du répertoire c:\Winnt ou c:\Windows et observe bien ===>> avancement d'un "inventaire"

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, j'ai retrouvé cela dans mon bazar, je n'en connais pas l'origine, mais cela devrait te convenir http://cjoint.com/?edsoKmceMF

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Merci kiki.
    Je souhaitais simplement avoir le nombre de fichiers dans un répertoire et ses sous-répertoire. Pour compter les fichiers, j'ai cette fonction qui fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function CompteLesFichiers(PathRep As String) As Long
    Dim fs, RepFich As Variant
        Set fs = CreateObject("Scripting.FileSystemObject")
        CompteLesFichiers = fs.GetFolder(PathRep).Files.Count
        For Each RepFich In fs.GetFolder(PathRep).SubFolders
            CompteLesFichiers = CompteLesFichiers + CompteLesFichiers(RepFich.path)
        Next RepFich
    End Function
    Et l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub CompterSeulement()
    Dim chemin As String
        chemin = "D:\Doc\" 'avec ou sans sous-répertoire
        MsgBox CompteLesFichiers(chemin)
    End Sub
    Cette fonction peut se décliner sans difficulté pour avoir le nom des répertoires et le nom des fichiers qu'il contient. Mais ce n'est pas mon but.
    Mon souhait aurait été d'avoir directement le nombre de fichiers d'un répertoire et ses sous-répertoire sur une ou deux lignes de commande... Et je pense que seule une API de windows pourrait "m'offrir ça.
    Si je n'ai pas de réponse, je changerai le sujet de la discussion, il y a plein de choses intéressante là-dedans
    Merci à tous.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/04/2015, 22h47
  2. [Batch] Compter le nombre de fichiers dans un ou plusieurs répertoires
    Par Olivier Regnier dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 11/10/2011, 21h17
  3. Réponses: 4
    Dernier message: 20/04/2011, 11h11
  4. Réponses: 0
    Dernier message: 15/03/2009, 12h52
  5. Réponses: 2
    Dernier message: 26/08/2007, 14h30

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