Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : Supprimer les fichiers plus vieux de X jours

  • Initiateur de la discussion Initiateur de la discussion Shinreih
  • 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 !

S

Shinreih

Guest
Bonjour à vous tous

Je me permets de vous solliciter autour de mon problème :

J'ai un code vba qui générè des sauvegardes a chaque enregistrement de mon fichier excel.
Afin de ne pas saturer le dossier de sauvegarde je souhaiterais automatiser la suppression des fichiers excel plus vieux de X jours

Les sauvegardes sont nommées selon cette nomenclature:

emplacement\sauvegardefichier_jourdesauvegardeheuredesauvegarde.xlsm

J'ai un code VBA me permettant de supprimer un fichier défini


Code:
'macro de suppression des fichiers de sauvegardes ancines
Sub purgersauvegarde()
    'verifie l'existence du fichier de sauvegarde
    Call TESTDOSSIERSAVE
            
    'Emplacement des sauvegardes à supprimer
    cheminsauvegardes = Sheets("CRITERES").Range("Z14").Value
    
    'Nom et emplacement du fichier actuel
    nomsauvegardes = Sheets("CRITERES").Range("Z8").Value
    
    'supprime la sauvegarde fichier
    Dim GestionFichier As New Scripting.FileSystemObject
    GestionFichier.DeleteFile "cefichier"
    Set GestionFichier = Nothing

End Sub



mon soucis c'est qu'il me manque la méthode pour supprimer les fichiers plus vieux de X jours

Pouvez-vous m'orienter s'il vous plait ?
Merci d'avance de votre précieuse aide et de m'accorder ainsi un peu de votre cogito!

Bien à vous!

Cordialement,
Shinreih
 
Dernière modification par un modérateur:
Re : VBA : Supprimer les fichiers plus vieux de X jours

Bonjour,

comme ceci

VB:
Sub testdate()
chemin = "C:\Users\Marcel\Documents\"
nf = chemin & "Testini.ini"
DateModifFichier = FileDateTime(nf)
MsgBox DateModifFichier
End Sub
 
Re : VBA : Supprimer les fichiers plus vieux de X jours

Bonjour,

comme ceci

VB:
Sub testdate()
chemin = "C:\Users\Marcel\Documents\"
nf = chemin & "Testini.ini"
DateModifFichier = FileDateTime(nf)
MsgBox DateModifFichier
End Sub


Merci de votre aide...

Cependant je suis confuse


C'est un message qui donne la date , cependant je ne comprends comment on teste la date de chaque fichier et on les supprime le cas échéant avec ce code? 😕

Pourriez-vous éclairez ma lanterne de touchoteuse de VBA s'il vous plaît ?


Très courtoisement,
Shinreih
 
Dernière modification par un modérateur:
Re : VBA : Supprimer les fichiers plus vieux de X jours

Attention mise en garde 🙁
les fichiers n' ayant eu une modification ou un enregistrement datant de 7 jours et plus seront supprimés définitivement.

voir à ne pas employer au retour de congés par exemple 🙄
 

Pièces jointes

Dernière édition:
Re : VBA : Supprimer les fichiers plus vieux de X jours

J'ai finalement trouver encore plus simple

mes fichiers de sauvegardes s'appelle tous sauvegardenomfichier_datedecreationsauvegarde.xlsms

1. dans une cellule 1 j'entre = aujourdhui()
2. dans une 2eme cellule = cellule 1 - X ce qui créer la date de création des fichiers à supprimer
3. dans la cellule Z17 je concatène le nom de nom fichier et la date de création des fichiers à supprimer sans le .xlsm ensuite j'entre ce code dans visual basic

Code:
Sub PURGELESSAUVEGARDES()
    'japelle la macro qui créer les sauvegarde pour etre sure qu'il m'enreste au moins une
    Call creersauvegarde
     'j'appelle la valeur de la cellule où j'ai définis le nom des fichiers à supprimer
    radicalasupprimer = Sheets("CRITERES").Range("Z17").Value
    
    Dim GestionFichier As New Scripting.FileSystemObject
    MsgBox "Confirmer la purge des sauvegardes j-1 ?"
    On Error Resume Next
    ' efface plusieurs fichiers à la fois grâce à l'étoile : La ligne suivante efface tous les fichiers qui commencent par la valeur comprise dans radicalasupprimer mais dont l'extension est ".xlsm"
    GestionFichier.DeleteFile radicalasupprimer & "*" & ".xlsm", True
    
    On Error GoTo 0
    'MsgBox "Purge des sauvegarde effectuée"
    Set GestionFichier = Nothing
    
End Sub


Je sais c'est de la bidouille mais du coup pour changer les délais de suppression je n'ai plus qu'à aller dans ma feuille et non dans VBA

Merci gilbert pour votre aide

Très courtoisement
Shinreih

sources très complètes
 
Dernière modification par un modérateur:
Re : VBA : Supprimer les fichiers plus vieux de X jours

a vous de voir

@ plus peut-être

je n'ai plus qu'à aller dans ma feuille et non dans VBA

c'est aussi faisable avec le fichier que j'ai mis 😱
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
934
L
Réponses
9
Affichages
1 K
R
Réponses
0
Affichages
3 K
R
N
Réponses
1
Affichages
1 K
N
L
Réponses
28
Affichages
3 K
Ludovic56
L
T
Réponses
22
Affichages
6 K
Thibault LB
T
S
Réponses
10
Affichages
2 K
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…