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 !

degap05

XLDnaute Impliqué
Bonjour, avec le code suivant, placé dans ThisWorkBook:

'configuration sauvegarde automatique
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False

ThisWorkbook.SaveAs "E:\xxx\ttt\qqq\uuu\Mes documents\MDSH\Sauvegarde\" & "MDSH" & Format(Now, " dd-mm-yy ""à"" hh""h""mm""mn""") & ".xls"
'message de réussite
MsgBox "Une sauvegarde de secours, de MDSH, a été effectuée avec succés !" _
& vbCrLf & " " & vbCrLf & "Emplacement: E:\xxx\ttt\qqq\uuu\Mes documents\MDSH" _

Application.DisplayAlerts = True
End Sub


j'effectue des sauvegardes incrémentées sur l'heure.
Pensez-vous qu'il soit possible de limiter le nombre de sauvegarde à 3 dans le dossier de sauvegarde ?
Le résultat serait que la quatrième sauvegarde écrase la plus ancienne et ainsi de suite🙂

Merci
 
Re : Sauvegarde

Re bonjour,

la fonction "filesearch" permet (comme son nom l'indique) de trouver des fichiers.

Dans ton cas il s'agit d'écraser dans un dossier le fichier le plus ancien lorsqu'il y a 3 fichiers (dis moi si je me trompe)
L'exemple suivant "liste" les fichiers dont le nom commence par "Classeur" dans le dossier C (si leur nombre est égal à 3) puis affiche dans un message le plus ancien? (c'est cela dont je ne suis pas sur et qu'il faut vérifier) des 3 fichiers.

Code:
Sub essai()
With Application.FileSearch
    .LookIn = "C:\"
    .FileType = msoFileTypeExcelWorkbooks
    .Filename = "Classeur*"
    .Execute
    If .FoundFiles.Count = 3 Then MsgBox .FoundFiles(1) & " est le fichier le plus ancien?"
End With
End Sub
 
Re : Sauvegarde

Bonjour, Skoobi,

Le fichier aurait un nom comme: MDSH 28-02-08 à 11h48mn, sachant que le nom n'est pas toujours le même, puisqu'il prend la valeur de la date et de l'heure de sauvegarde. Sinon la base du nom est MDSH.

Ensuite, un message est inutile, il suffit d'écraser le fichier le plus ancien🙂

Comment incorporer ton code dans:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Merci
 
Re : Sauvegarde

Re bonsoir,

Comment incorporer ton code dans:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

comme ça.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application.FileSearch
    .LookIn = "E:\Forum Excel-Download\Test\"
    .FileType = msoFileTypeExcelWorkbooks
    .Filename = "MDSH*"
    .Execute
    If .FoundFiles.Count = 3 Then
        Kill .FoundFiles(1)
    End If
End With
ThisWorkbook.SaveAs Filename:="E:\Pharma\Secrétariat\Dossiers personnels\M.MORGAND\Mes documents\Sauv\" & "MDSH" & Format(Now, " dd-mm-yy ""à"" hh""h""mm""mn""") & ".xls"
MsgBox "Sauvegarde effectuée!"

End Sub

Tu n'as besoin de rien d'autre.
J'ai fais quelques tests, ça devrait être bon. 🙂
 
Re : Sauvegarde

Re bonjour,

tu auras remarqué qu'il faudra remplacer le chemin dans
".LookIn" comme ceci:

Code:
 .LookIn = "E:\Pharma\Secrétariat\Dossiers personnels\M.MORGAND\Mes documents\Sauv\"

petit oubli de ma part 😉
 
Dernière édition:
Re : Sauvegarde

Skoobi,

Je pense que ta macro peut rendre service à de nombreux visiteurs de ce forum.

Je l'ai mise dans une feuille jointe, prête à être utilisée.

Qu'en penses-tu ?

Il manque juste à éviter le blocage qui se produit lorsqu' on abandonne l'opération et éviter l'ouverture du déboggage.

Peux-tu voir ce qu'il en est ?

Merci.
 

Pièces jointes

- 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

Retour