Comparaison d'une liste de fichier avec le contenu d'un répertoire

kochonmagique

XLDnaute Nouveau
Bonjour,
Je suis à la recherche d'un moyen de comparer le contenu d'un répertoire avec une liste de fichier contenus dans un tableau excel (plusieurs centaine voir plusieurs milliers)
exemple mon rep contient :fichier1.pdf, fichier2.pdf etc
les lignes excel contiennent fichier1.pdf, fichier3.pdf etc

le but du jeu est de connaitre les fichiers existants, ceux qui manquent (présents dans excel et pas sur le disque) et enfin si possible ceux qui sont en plus (présents sur le disque, mais pas dans excel).

j'avoue que là, je n'ai pas l'ombre d'une piste....:(

merci par avance à ceux / celles qui ont des idées.:)
 

Etienne2323

XLDnaute Impliqué
Re : Comparaison d'une liste de fichier avec le contenu d'un répertoire

Salut Kochon, Dranreb :)

voici une autre piste de solution pour répertorier les fichiers qui se trouvent dans un répertoire.

Pour la suite, un fichier exemple serait le bienvenu.

VB:
Option Explicit

Sub Fichiers_presents_dans_le_repertoire()

Dim objFSO, objDossier, objFichier, Repertoire
Dim Mon_Compteur As Integer, i As Integer
Dim Le_Fichier(1 To 10000) As String

Application.ScreenUpdating = False
On Error Resume Next
Repertoire = "C:\Documents and Settings\Etienne\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDossier = objFSO.GetFolder(Repertoire)

'Conserver les noms des fichiers présents dans le répertoire dans une variable tablo
If (objDossier.Files.Count > 0) Then
    For Each objFichier In objDossier.Files
        Mon_Compteur = Mon_Compteur + 1
        Le_Fichier(Mon_Compteur) = objFichier.Name
    Next
End If

'Dépose le contenu de la variable dans l'onglet Excel
For i = 1 To Mon_Compteur
    Cells(i, 1).Value = Le_Fichier(i)
Next i

Set objDossier = Nothing
Set objFSO = Nothing
Erase Le_Fichier
On Error GoTo 0

End Sub

Cordialement,

Étienne
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 590
Membres
103 247
dernier inscrit
bottxok