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
| Option Compare Database
Option Explicit
Dim fso As FileSystemObject, dossier As Folder, sousdossier As Folder
Dim fichier As File, FichierAncien As File
Dim DateFichierAncien As Long
Dim NomFichier As String, NomFichierAncien As String
'Compter le nombre de fichier dans un répertoire
Function nbfich(chemin As String, ParamArray termin() As Variant) As Long
Dim fichier As String
Dim extension As Variant
Dim compteur As Long
For Each extension In termin
fichier = Dir(chemin & "\*." & extension)
Do Until fichier = ""
compteur = compteur + 1
fichier = Dir
Loop
Next extension
nbfich = compteur
Debug.Print nbfich
End Function
'Scanner un répertoire - avec les sous répertoire
Public Sub scan(ByVal dossier As Folder)
DateFichierAncien = CLng(Year(Date) & Format(Month(Date), "00") & Format(Day(Date), "00"))
Debug.Print DateFichierAncien
For Each fichier In dossier.Files
Debug.Print fichier
NomFichier = fichier.Name
Debug.Print CLng(Mid(NomFichier, Len(NomFichier) - 11, 8))
If CLng(Mid(NomFichier, Len(NomFichier) - 11, 8)) < DateFichierAncien Then
DateFichierAncien = CLng(Mid(NomFichier, Len(NomFichier) - 11, 8))
NomFichierAncien = NomFichier
End If
Next
Debug.Print NomFichierAncien
'Supprimer le fichier
Kill ("H:\.....\HIPPARQUE\" & NomFichierAncien)
'Possibilité d'entrer le chemin du dossier en paramètre?????
End Sub
'Fonction de suppression du fichier le plus ancien s'il y en a plus de 5
'Chemin indique le répertoire
Function SupprimerFichierAncien(chemin As String)
Set fso = New FileSystemObject
Set dossier = fso.GetFolder(chemin)
If nbfich(chemin, "xls") >= 5 Then
scan dossier
MsgBox "Un fichier a été supprimé"
End If
End Function |
Partager