Limiter mes sauvegardes du classeur

Bonjour à tous.

J'ai trouvé un code vba pour mes sauvegardes , il fonctionne très bien.

Mais j'ai besoin pour la partition D: et E: que les sauvegardes qui ont le jour et l'heure soient limitées en nombre de 3

Je suis novice en VBA et je ne sais pas comment faire.

Le but est de travailler sur le classeur c: de le sauver tel quel et qu'il y ait une sauvegarde sur le D: et E: avec l'année, le jour, l'heure.

Cela fonctionne mais je me retrouve avec un tas de sauvegardes et D: et E trop importants.

Merci pour votre aide.

David.

Le code actuel.

Sub SaveStock()

'UpdateByExtendoffice20160623
ActiveWorkbook.SaveCopyAs "C:\DOSSIER\STOC\Save\" + ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs "D:\DOSSIER\STOCK\Save\" & Format(Now, "dd-mm-yyyy hh""H""mm") & " - " & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs "E:\DOSSIER\STOCK\Save\" & Format(Now, "dd-mm-yyyy hh""H""mm") & " - " & ActiveWorkbook.Name
ActiveWorkbook.Save


Select Case MsgBox(" Les Sauvegarde réussies.", , "Toutes les 3 Sauvegardes.")
End Select
End Sub

Bonjour

Il faudrait savoir comment est faite la sauvegarde... à quelle fréquence... et savoir si il y a d'autres fichiers dans le dossier mais une solution pourrais de supprimer tous les fichiers de plus de X jours...

avec par exemple cette fonction : avec 7 jours et ciblage sur les fichiers pdf

Function DelFiles(folder As String, criteria As String)
    Dim file As String
    file = Dir(folder & "\*" & criteria)
    Do While Len(file) > 0
        If CDate(FileDateTime(folder & "\" & file)) < DateAdd("d", -7, Date) Then
            Kill (folder & "\" & file)
        End If
        file = Dir
    Loop
End Function

et l'appel de la fonction :

DelFiles("D:\temp","pdf")

ATTENTION toujours travailler sur un répertoire test lors du développement

Fred

Bonjour,

Merci votre retour.

La sauvegarde se fait chaque jour en fonction de nos commandes.

Je suis juste une toute petite entreprise (sans réelle moyens, si se n'est que l'amour de ma femme).

J'ai besoin de transmettre à mes fournisseurs (locaux et Français) mes commandes .

Pour des raisons de sécurités et de contrôles, il me faut vérifier chaque commandes pour les respects de mes clients qui me font confiances.

C'est important.

David

Oh, pardon..

J'ai juste besoin de savoir en fonction de mon code d'origine...comment faire pour que les sauvegardes (avec date etc..) peuvent être limiter à 3 à partir de la 3éme saves afin de ne pas à avoir effacer manuellement, tout enregistrer normalement le classeur d'origine en C:

En clair par ex : c:/ dossier/ save/ fichier.xlms

D:/ dossier/save/fichier.xlms 16.03.2023. -16h22.xlms

E:/ dossier/save/fichier.xlms 16.03.2023. -16h22.xlms

""désolé j'ai du sans faire des fautes de frappes, mais bon, vous voyez la démarche".

J'ai besoin simplement en tenant compte de mon code de bas de limiter ) 3 les sauvegarde avec date etc..

Merci à vous tous.

David.

re bonjour

Je ne connais pas la taille des fichiers de sauvegarde ... mais personnellement je ferrais une suppression des fichiers de plus de 7 jours... car si on met a trois jours... et que l'on est le lundi, il resterait que le fichier de dimanche-samedi-vendredi.. donc en fait que vendredi je suppose..

de plus dans vos dossiers de sauvegarde il y a d'autres fichiers ? ou seulement ceux des sauvegardes ?

si c'est que les fichiers de sauvegarde on pourrait faire ceci :

DelFiles("D:\dossier\save","xlsm")
DelFiles("E:\dossier\save","xlsm")

ATTENTION encore une fois travailler sur une copie des dossiers dans un premier temps car retour en arrière impossible

Fred

Bonsoir,

Merci fred2406

Merci pour la aide et la demande..

Franchement je pensais que cela serait très simple. Mais bon.

Pour répondre :

Chaque partition et dossiers sont uniques , en clair pas d'autres classeurs où autres fichiers.

Je ne travaille que sur le fichier (classeur) en C: qui se sauvegarde à chaque intervention (sans Année, jours , heures).

En clair, j'ai (on) simplement besoin que D: et E: limitent les sauvegardes de C: (avec Année, ours , heures ) avec des saves au nombre de 3 où 4.

,et que ces sauvegardes effacent les plus anciennes à fur et mesure.

La save de D: reste avec moi (en cas.

Celle de E : part directement à un autre service.

J'ai plusieurs exemples (mais comme je ne comprends rien au VBA) désolé. je ne sais pas comment adapter mon code pour les répertoires D: et E.

Merci encore pour le retour.

David..

Bonjour

Donc je confirme j'utilisation de la fonction fournie... et appel de la fonction comme indiquée.

donc le code actuel serait remplacé par :

Sub SaveStock()

'UpdateByExtendoffice20160623
ActiveWorkbook.SaveCopyAs "C:\DOSSIER\STOC\Save\" + ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs "D:\DOSSIER\STOCK\Save\" & Format(Now, "dd-mm-yyyy hh""H""mm") & " - " & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs "E:\DOSSIER\STOCK\Save\" & Format(Now, "dd-mm-yyyy hh""H""mm") & " - " & ActiveWorkbook.Name
ActiveWorkbook.Save

MsgBox(" Les Sauvegarde réussies.", , "Toutes les 3 Sauvegardes.")

DelFiles("D:\DOSSIER\STOCK\Save","xlsm")
DelFiles("E:\DOSSIER\STOCK\Save","xlsm")
End Sub
Function DelFiles(folder As String, criteria As String)
    Dim file As String
    file = Dir(folder & "\*" & criteria)
    Do While Len(file) > 0
        If CDate(FileDateTime(folder & "\" & file)) < DateAdd("d", -7, Date) Then
            Kill (folder & "\" & file)
        End If
        file = Dir
    Loop
End Function

Fred

Re bonjour,

Merci grand merci Fred.

Excel 2019 (2023)

Mais lorsque je recopie tel quel ce code avec un nouveaux classeur test avec les bons dossiers concernés, celui-ci m'indique pour les 2 lignes :

DelFiles("D:\DOSSIER\STOCK\Save","xlsm")
DelFiles("E:\DOSSIER\STOCK\Save","xlsm")

Erreur de synthase Erreur de compilation.

Je craque, je pense que je vais laisser tomber. Je croyais que c'était simple mais cela ne l'est pas manifestement.

Pour info : le classeur pèse 800ko.

DAVID

Bonsoir effectivement

remplacer les deux lignes précédentes par :

retour = DelFiles("D:\DOSSIER\STOCK\Save","xlsm")
retour = DelFiles("E:\DOSSIER\STOCK\Save","xlsm")

Fred

Bonjour FRED,

Cela fonctionne parfaitement.

Grand merci pour l'aide et la patience.

J'étais à 2 doigts d'arrêter.

Génial.

DAVID

Bonjour

dans ce cas... ne pas oublier...

Fred

Rechercher des sujets similaires à "limiter mes sauvegardes classeur"