Erreur récupération nombre de fichier dans un dossier

Bonjour, il y a quelque temps j'ai fait une macro qui me permet de calculer le nombre de fichier que j'ai dans un dossier. Tout fonctionnait très bien jusqu'à il y a une semaine, quand je lance la macro il me dit que j'ai par exemple, 6 fichiers dans mon dossier alors que réellement je n'est que 5 fichier.

Pour que ça refonctionne je dois créer un nouveau dossier le renommer et supprimer l'ancien et remettre les fichiers dedans et là, il me dit que j'ai 5 fichiers.

le problème c'est que cela ne ce produit pas tout le temps est ce que vous serriez pourquoi ??

Const CHEMINACCES As String = "mettrelechemin"

Sub calcul()
    If DossierExiste(CHEMINACCES & "SEMAINE 01") = True Then
        Range("C5") = NombreFichiers(CHEMINACCES & "SEMAINE 01")
    End If
    If DossierExiste(CHEMINACCES & "SEMAINE 02") = True Then
        Range("C6") = NombreFichiers(CHEMINACCES & "SEMAINE 02")
    End If

    'etc etc....

End Sub

Function NombreFichiers(ByVal Dossier As String) As Long
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    NombreFichiers = FSO.GetFolder(Dossier).Files.Count
    Set FSO = Nothing
End Function

Public Function DossierExiste(MonDossier As String)
   If Len(Dir(MonDossier, vbDirectory)) > 0 Then
      DossierExiste = True
   Else
      DossierExiste = False
   End If
End Function

Est-ce que tous les fichiers commencent par "mettrelechemin" ?

Est-ce que ces fichiers sont enregistrés de façon dynamique et comment ?

Bonjour à tous,

Voici un essai en modifiant la fonction :

Function NombreFichiers(ByVal Dossier As String) As Long
with CreateObject("Scripting.FileSystemObject")
    for each fil in .GetFolder(Dossier).Files
        if fil.attributes <= 33 then NombreFichiers = NombreFichiers + 1
    next fil
end with
End Function

Ce "mauvais décompte" pourrait être lié à la présence d'alias. A voir si cela persiste...

Pour mieux comprendre la logique : https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/attributes-proper...

Cdlt,

Bonjour 3GB,

Dans mes dossiers il n'y a aucun lien ou raccourci (uniquement des fichiers PDF), pourtant la modification de la fonction que vous avez faites semble résoudre complétement le problème.

Merci.

Bonjour,

Tant mieux ! Essayez ce code et vous verrez les fichiers contenus dans le dossier :

Sub AfficherNoms(ByVal Dossier As String) As Long
with CreateObject("Scripting.FileSystemObject").GetFolder(Dossier)
    redim t(1 to .files.count)
    for each fil in .Files
        n = n + 1: t(n) = "Nom : " & fil.name & " - attributs : " & fil.attributes
    next fil
end with
msgbox join(t, vblf)
End sub

Ce code a de l'intérêt pour un nombre limité de fichiers, sinon, il est préférable de coller le tableau sur excel.

Cdlt,

Très utile ce petit bout de code :)

Nom : 383778.pdf - attributs : 32

Nom : 388019.pdf - attributs : 32

Nom : 388624.pdf - attributs : 32

Nom : Thumbs.db - attributs : 38

il me trouve un fichier caché "Thumbs.db" c'est lui qui devais mettre le bordel dans ma macro originale...

Pourquoi ce fichier ce créé et pourquoi il ne le fait pas tout le temps ?

Oui, c'est bien lui le coupable !

Apparemment, pour accélérer l'affichage des miniatures des fichiers, l'explorateur Windows en crée un (fichier thumbs) caché qui les stocke...

Peut-être que si vous optiez pour un autre mode d'affichage (Détails ou Liste par exemple), vous n'auriez pas ce problème. C'est à tester.

Rechercher des sujets similaires à "erreur recuperation nombre fichier dossier"