suppression de classeurs

  • Initiateur de la discussion Initiateur de la discussion f69815
  • Date de début Date de début

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 !

f69815

XLDnaute Occasionnel
bonsoir à toutes et à tous,

je fais des sauvegardes de certains fichiers tous les jours, mais je ne veux garder que les sauvegardes des 5 derniers jours.

j'ai trouvé ce bout de code sur le wiki, mais je butte sur la fin du code qui teste la date de création et la date du jour - 5.

en fait il efface tout et je pense que cela vient du format de date dans mes variable date_jour et resultat_date.

pouvez-vous m'aider ?

merci

Sub supp_fichier()
'source:
'http://www.microsoft.com/resources/documentation/windows/2000/server/
'scriptguide/en-us/sas_fil_lunl.mspx
'
'Nécessite d'activer la référence Microsoft Shell Controls and Automation
'
Dim objShell As Shell32.Shell
Dim strFileName As Shell32.FolderItem
Dim objFolder As Shell32.Folder
Dim Resultat As String, Reponse As String
Dim i As Byte
date_jour = Format(Date - 5, "dd-mm-yy")
Set Supp = CreateObject("Scripting.fileSystemObject")
Set objShell = CreateObject("Shell.Application")
'Répertoire cible
Set objFolder = objShell.nameSpace("F:\excel\")

'boucle sur tous les elements du repertoire
For Each strFileName In objFolder.Items

'récupération du nom du fichier
resultat_nom = objFolder.getDetailsOf(strFileName, 0)

'récupération de la date de création
resultat_date = Format(objFolder.getDetailsOf(strFileName, 4), "dd-mm-yy")

If resultat_date < date_jour Then
Supp.DeleteFile "F:\excel\" & resultat_nom & ".xls"
Else
MsgBox "nok"
End If

Next
End Sub
 
Re : suppression de classeurs

Salut f69815,

On ne le répètera jamais assez !
Dans du code, il faut toujours penser à définir ces variables.
Cela peut accélérer l'exécution du code et évite les problèmes de ce style.

Rajoute cette ligne au début
Code:
Dim Date_Jour As Date, Resultat_Date As Date

Testée chez moi, cela fonctionne nettement mieux

Pour éviter la suppression réelle lors du test :
Code:
If Resultat_Date < Date_Jour Then
  MsgBox resultat_nom & " suppression OK !"
  'Supp.DeleteFile "F:\excel\" & resultat_nom & ".xls"
Else
  MsgBox "nok"
End If

Voilà 😉
 
- 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

Discussions similaires

Réponses
2
Affichages
769
Réponses
10
Affichages
791
Réponses
3
Affichages
1 K
Retour