1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| Dim kLigneVide As Long, kLigne1 As Long, kLigne2 As Long
Sub TestListeFichiers()
Dim Dossier As String
'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).
Dossier = "C:\Users\Desktop\Nouveau dossier(3)"
'Appelle la procédure de recherche des fichiers
ListeFichiers Dossier
'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)
'Mise à zero de la page
Cells.Select
Selection.ClearContents
'Titre des colonnes
Range("a1").Value = "Nom du fichier"
Range("b1").Value = "Date de modification"
Range("c1").Value = "Nombre de données fichier"
Range("d1").Value = "Nombre de Ligne total du fichier" '-> LE BUT est de pouvoir créer un pourcentage et graphique par la suite
Range("e1").Value = "Nombre de Ligne contenant un '1'" '-> LE BUT est de pouvoir créer un pourcentage et graphique par la suite
Range("f1").Value = "Nombre de Ligne contenant un '2'" '-> LE BUT est de pouvoir créer un pourcentage et graphique par la suite
'Mise en forme 1er ligne
Rows("1:1").Select
Selection.Font.Bold = True
Selection.Font.Size = 12
'feuille vidée, commence à la 2e ligne
i = 2
'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 dernière modification
Cells(i, 2) = FileItem.DateLastModified
AnalyserFichier FileItem.Name
Cells(i, 3) = kLigneVide
Cells(i, 4) = kLigne1
Cells(i, 5) = kLigne2
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
Sub AnalyserFichier(sFileName As String)
Dim kR As Long, s As String
kLigneVide = 0
kLigne1 = 0
kLigne2 = 0
If Left(sFileName, 4) <> ".asc" Then Exit Sub
'--- ouvre le fichier pour l'analyser
Workbooks.OpenText Filename:=sFileName
kR = Cells(Rows.Count, 1).End(xlUp).Row '--- n° de la dernière ligne en colonne 1
While kR > 0
s = CStr(Cells(kR, 1))
If Len(s) = 0 Then kLigneVide = kLigneVide + 1
If InStr(s, "1") Then kLigne1 = kLigne1 + 1
If InStr(s, "2") Then kLigne2 = kLigne2 + 1
kR = kR - 1
Wend
'--- referme la fenêtre, sans modifier le fichier
ActiveWindow.Close False
End Sub |
Partager