Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
les fichiers sont dont incréméntés à la fermeture sous le nom de fichier :
Macros - 2011 02 05 - 23h09 34.xls
Macros - 2011 02 05 - 23h10 00.xls
Macros - 2011 02 06 - 23h06 05.xls
Macros - 2011 02 06 - 23h06 33.xls
Ce que je recherche donc : une macro qui à la fermeture du fichier exécutera la suppression des fichiers antérieurs à la dernière date moins 1 jour.
Donc supression des 2 fichiers daté du 2011 02 05
Bonsoir, Attention : supprime tous les fichiers du répertoire spécifié dont la date de modif est inférieure à J-1; c'est sans retour
Code:
Sub d()
Dim fs, fl, f
pDossier = "W:\A Essais\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set fl = fs.getfolder(pDossier).Files
For Each f In fl
If f.DateLastModified < VBA.Date - 1 Then Kill f
Next
End Sub
Bonjour à tous, sieur kjin mes salutations du matin
Pour une méthode moins "tarantinoiesque", voici un exemple qui envoie le fichier à la poubelle
VB:
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
sFrom As String
sTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
(ByRef lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_DELETE = &H3
Private Const FOF_SILENT = &H4
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_ALLOWUNDO = &H40
Sub DeleteFileUsingAPI()
Dim oFilAPI As SHFILEOPSTRUCT
Dim lReturn As Long
Dim sFile As String ' File that needs to be deleted
sFile = "C:\ Temp\test.xls"
With oFilAPI
.wFunc = FO_DELETE
.sFrom = sFile
.sTo = vbNullChar
.fFlags = FOF_SILENT + FOF_NOCONFIRMATION + FOF_ALLOWUNDO
End With
' Use WinAPI User Defined Function
lReturn = SHFileOperation(oFilAPI)
Err_Delete:
MsgBox(Err.Number & " - " & Err.Description)
Err.Clear()
Resume Next
End Sub
'auteur : Devakottai PaneerSelvam
Bonjour à tous, sieur kjin mes salutations du matin
Pour une méthode moins "tarantinoiesque", voici un exemple qui envoie le fichier à la poubelle
VB:
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
sFrom As String
sTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
(ByRef lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_DELETE = &H3
Private Const FOF_SILENT = &H4
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_ALLOWUNDO = &H40
Sub DeleteFileUsingAPI()
Dim oFilAPI As SHFILEOPSTRUCT
Dim lReturn As Long
Dim sFile As String ' File that needs to be deleted
sFile = "C:\ Temp\test.xls"
With oFilAPI
.wFunc = FO_DELETE
.sFrom = sFile
.sTo = vbNullChar
.fFlags = FOF_SILENT + FOF_NOCONFIRMATION + FOF_ALLOWUNDO
End With
' Use WinAPI User Defined Function
lReturn = SHFileOperation(oFilAPI)
Err_Delete:
MsgBox(Err.Number & " - " & Err.Description)
Err.Clear()
Resume Next
End Sub
'auteur : Devakottai PaneerSelvam
Bonsoir,
Merci de votre réponse, je rencontre en lançant ce code un message:
Erreur de complilation : Erreur de syntaxe
Et dans le code Err.clear() est en surbrillance.
Christounet
Merci, de votre réponse.
Code efficace, rapide, mais je recherche la suppression uniquement des fichiers qui comporte le même nom racine, dans l'exemple Macros XXXXXXXXXX.xls.
Christounet
Bonsoir, Attention : supprime tous les fichiers du répertoire spécifié dont la date de modif est inférieure à J-1; c'est sans retour
Code:
Sub d()
Dim fs, fl, f
pDossier = "W:\A Essais\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set fl = fs.getfolder(pDossier).Files
For Each f In fl
If f.DateLastModified < VBA.Date - 1 Then Kill f
Next
End Sub
Merci, de votre réponse.
Code efficace, rapide, mais je recherche la suppression uniquement des fichiers qui comporte le même nom racine, dans l'exemple Macros XXXXXXXXXX.xls.
Christounet
Sub d()
Dim fs, fl, f
pDossier = "W:\A Essais\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set fl = fs.getfolder(pDossier).Files
For Each f In fl
If f.Name Like "Macros*" Then
If f.DateLastModified < VBA.Date - 1 Then Kill f
End If
Next
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD