Supprimer les anciens fichier

Fermé
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025 - 3 mars 2020 à 08:54
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 - 21 mars 2020 à 16:08
bonjour a tous
cette fonction me permet de sauvegarder à plusieurs endroits mes fichiers
Par contre les sauvegardes m'accumule les fichiers
Que me manque t il pour supprimer à chaque sauvegarde pour suprimer le fichier enregistré -1
merci beaucoup a vous

Sub Sauvegarde()
Application.DisplayAlerts = False
If Len(Dir("C:\Users\jacques\Documents\jeux loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="C:\Users\jacques\Documents\jeux loto\" & ActiveWorkbook.Name, CreateBackup:=False
End If
If Len(Dir("g:\loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="G:\loto\" & ActiveWorkbook.Name, CreateBackup:=False

End If
If Len(Dir("E:\loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="E:\loto\" & ActiveWorkbook.Name, CreateBackup:=False
End If
If Len(Dir("F:\loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="F:\loto\" & ActiveWorkbook.Name, CreateBackup:=False
End If
ActiveWorkbook.SaveAs Filename:="C:\Users\jacques\onedrive\loto\jeux loto\ " & ActiveWorkbook.Name, CreateBackup:=False
End Sub
A voir également:

9 réponses

Utilisateur anonyme
3 mars 2020 à 09:29
Bonjour

Tout d’abord afin de faciliter la lecteur au membre qui pourrait t’aider merci de lire et appliquer ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, je ne suis pas féru de VBA, je vais laisser ceux qui savent mieux répondre techniquement.
Cependant sur le principe, supposons que je sauvegarde à 10h00, il y a un fichier de 9h50, il est supprimé. Si dans le fichier de 10h00 j’ai fait une erreur je n’ai plus la possibilité de restaurer les bonnes valeurs puisque je n’ai plus le fichier de 9h50.

Une bonne sauvegarde est incrémentielle, c’est à dire qu’on conserve les différentes étapes afin de pouvoir revenir en arrière. Ce que fait ta fonction pour l’instant.

Malheureusement Microsoft n’as pas jugé pertinent de faire en sorte qu’Office le fasse nativement. Sur la suite bureautique Mac, par exemple, à chaque enregistrement, en fait on enregistre les différences entre le dernier enregistrement et « maintenant »:
  • ça ne prend pas trop de place,
  • on a un seul fichier
  • l’interface permet de naviguer facilement dans l’historique de changement pour en annuler un


Une option pour toi serait d’utiliser un outil tel que GIT, qui sauvegarde les changements dans les fichiers textes. Un xlxs est en fait une archive zip qui regroupe pleins de fichiers textes.
0
Utilisateur anonyme
3 mars 2020 à 10:13
Un petit exemple en image.
Dans cet exemple, je n'ai pas dézippé le fichier xlxs, je le sauvegarde donc entier à chaque étape.
Je me sers de SourceTree qui est une interface fenêtrée gratuite pour GIT (qui est en ligne de commande)

Etape 1: il y a un nouveau fichier dans le repertoire


Entre l'étape 1 et l'étape 2, j'ai indéxé le fichier excel, mis un commentaire et validé, j'ai ensuite ignoré le suivi du fichier temporaire.

Etape 2, dans le fichier j'ai ajouté du texte et enregistré


On voit que le logiciel ne sais pas me montrer les différences (c'est pas dézippé), mais il me propose d'ouvrir "Avant" et "Après"

Etape 3 après commentaire et validation, on voit dans l'historique que je peux toujours ouvrir "Avant" et "Après"


Etape 4 dans l'historique, on voit le fichier qui m'a permit d'ignorer le fichier temporaire, c'est un fichier text et là on voir que j'ai ajouté (via SourceTree) une ligne dans ce fichier.
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 Ambassadeur 1 568
3 mars 2020 à 10:19
bonjour, le nom de ton fichier change-t'il à chaque fois?
0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
3 mars 2020 à 10:24
bonjour
non le nom est identique seule l'heure change et le fichier se décale d'une "case"
il n'est pas aligné sur le précédent
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568
3 mars 2020 à 10:44
tous ces fichiers ont le même nom et sont dans le même dossier?
0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
3 mars 2020 à 10:47
oui dans les mêmes dossiers (a 4 emplacements) fichiers très importants
1 ans d'écritures!
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568
3 mars 2020 à 10:53
le fichier sauvé un jour a-t'il le même nom que le fichier sauvé la veille?
pour pouvoir supprimer à chaque sauvegarde le fichier enregistré -1, il faut pouvoir déterminer duquel il s'agit, non?
ou bien veux-tu tout supprimer, sauf le nouveau fichier?
peux-tu donner des informations supplémentaires?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
3 mars 2020 à 10:56
je veux supprimer tous les fichiers qui portent le nom du fichier a sauvegarder sauf celui que je sauve en instant 't'
0
Utilisateur anonyme
3 mars 2020 à 11:04
Sans vouloir être lourd

ça
fichiers très importants
1 ans d'écritures!
et ça
je veux supprimer tous les fichiers qui portent le nom du fichier a sauvegarder sauf celui que je sauve en instant 't'

C'est contradictoire, comme je l'ai expliqué plus haut.
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568
3 mars 2020 à 11:14
comment plusieurs fichiers peuvent-ils être dans le même dossier et avoir le même nom?
0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025 > yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025
3 mars 2020 à 11:15
et ben désolé mais c'est ainsi
0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025 > yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025
3 mars 2020 à 11:34
dommage je n'arrive pas a te copier la copie d'écran ou tu pourrais voir les fichiers avec les mêmes noms , des heure différentes et des offsets différents!
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568 > jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
3 mars 2020 à 11:51
tu peux aussi, dans une boite de commande, faire :
cd C:\Users\jacques\Documents\jeux loto
dir

et puis partager le texte de la réponse
0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
3 mars 2020 à 11:07
je conserve que le dernier que j'enregistre
c'est a dire qu'avant de sauvegarde le fichier il faut faire un "DEL" auparavant
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568
3 mars 2020 à 11:15
veux-tu simplement supprimer tous les fichiers du dossier avant de faire la sauvegarde?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
5 mars 2020 à 12:27
Bonjour,

Voici comment je limite, dans un répertoire, à 20 les dernières sauvegardes quotidiennes d'un même fichier.

Code des fonctions :
Const REPERTOIRE_SAVE As String = "C:/TEST/"
Const NB_SAVE As Integer = 20
Const NOM_FICHIER_SAVE As String = "MonNom"
Public Sub Limiter()
Dim i As Long, s As String
    i = CountFiles(REPERTOIRE_SAVE, "xlsm", s)
    If i > NB_SAVE Then
        If s <> vbNullString Then
            Kill s
        Else
            MsgBox "Erreur, veuillez vérifier votre répertoire"
        End If
   End If
End Sub
Public Function CountFiles(Rep As String, Extens As String, PlusVieux As String) As Long
Dim count As Long, Fichier As String, D As Date, sReturn As String
    If Dir(Rep & "*." & Extens) <> vbNullString Then
        Fichier = Dir(Rep & "*." & Extens)
        D = FileDateTime(Rep & Fichier): PlusVieux = Rep & Fichier
        Do Until Fichier = ""
            count = count + 1
            Fichier = Dir
            If Fichier <> "" Then
                If D > FileDateTime(Rep & Fichier) Then D = FileDateTime(Rep & Fichier): PlusVieux = Rep & Fichier
            End If
        Loop
    End If
    CountFiles = count
End Function


Code d'appel :
 If Dir(REPERTOIRE_SAVE & Format(Date, "yyyy mm dd") & " " & NOM_FICHIER_SAVE) = "" Then  
    ThisWorkbook.SaveCopyAs REPERTOIRE_SAVE & Format(Date, "yyyy mm dd") & " " & NOM_FICHIER_SAVE
    Call Limiter
End If

0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
21 mars 2020 à 11:21
franck bonjour
déjà merci pour ta réponse, mais en VBA je suis très moyen
aujourd'hui j'utilise ces codes:
Sub Sauvegarde()
Application.DisplayAlerts = False
If Len(Dir("C:\Users\jacques\Documents\jeux Beta", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="C:\Users\jacques\Documents\jeux Beta\" & ActiveWorkbook.Name, CreateBackup:=False
End If
If Len(Dir("g:\loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="G:\Beta\" & ActiveWorkbook.Name, CreateBackup:=False

End If
If Len(Dir("E:\loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="E:\loto\" & ActiveWorkbook.Name, CreateBackup:=False
End If
If Len(Dir("F:\loto", vbDirectory)) > 0 Then
ActiveWorkbook.SaveAs Filename:="F:\Beta\" & ActiveWorkbook.Name, CreateBackup:=False
End If
ActiveWorkbook.SaveAs Filename:="C:\Users\jacques\onedrive\Beta\jeux Beta\ " & ActiveWorkbook.Name, CreateBackup:=False
End Sub
As tu la possibilité de m'intégrer la possibilité de sauvegarder le jour JJ MM et l'heure HH MM et que je ne garde en sauvegarde que le dernier fichier et celui du dernier de la veille JJ -1
merci si tu peux
cordialement
jacques
0
Utilisateur anonyme
21 mars 2020 à 11:27
Bonjour, dès ma première réponse je t’ai indiqué un lien vers le tuto sur les balises de code.

Franck (que je salue au passage) a fait l’effort de s’en servir pour te rendre la lecture de son code aisée. La moindre des choses que tu pourrais faire pour lui est d’en faire autant.
Il te reste un peu plus de 50 minutes pour modifier ton message
0
jack2125 Messages postés 431 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 13 février 2025
21 mars 2020 à 15:48
désolé mais je ne comprends rien de ce que tu me racontes
merci de ces infos sans avancées pour moi..
bonne fin d'am
0
yg_be Messages postés 23471 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 février 2025 1 568
21 mars 2020 à 16:08
merci de lire et d'appliquer ceci quand tu postes du code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

cela nous encouragera et nous aidera à t'aider.
0