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

Suppression de copies de classeur

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

D

direct83

Guest
Bonjour,
A la fermeture de mon classeur une copie est générée dans le même dossier que le classeur d'origine avec la commande suivante : ThisWorkbook.SaveAs ThisWorkbook.Path & "\Courar" & Format(Now, "ddmmyyyy hhmmss") & ".xls"

Le problème c'est que si j'ouvre et donc je ferme plusieurs fois ce classeur, cela génère plusieurs copies. Je voudrais supprimer toutes les copies de sauvegarde automatiquement à la fin de la journée (soit à la dernière fermeture) en ne gardant que la dernière.
Merci de la réponse éclairée
 
Re : Suppression de copies de classeur

Le nom de ton classeur initial commence t'il par "Courar"?
si non, avant de sauvegarder, supprimer le fichier présent qui commence par "Courar".
Frédéric
 
Re : Suppression de copies de classeur

Bonjour le fil, bonjour le forum,

Un proposition avec le code ci-dessous. Attention car ça supprime les fichiers correspondants ! À tester avant dans un dossier de démo...

Tu ouvres le dernier fichier de copie créé et tu lances la macro (non testée) :

Code:
Sub Macro1()
Dim ch As String 'déclare la variable ch (CHemin d'accès)
Dim nom As String 'déclare la variable nom (nom)
Dim sf As Object 'déclare la variable sf (Système de Fichiers)
Dim d As Object 'déclare la variable d (Dossier)
Dim f As Object 'déclare la variable f (Fichiers)
Dim f1 As Object 'déclare la variable f1 (Fichier 1)
Dim dat As String 'déclare la variable dat (DATe)

ch = ThisWorkbook.Path 'définit la variable ch
nom = ThisWorkbook.Name 'définit la variable nom
Set sf = CreateObject("Scripting.FileSystemobject") 'définit la variable fs (Système de fichiers)
Set d = sf.GetFolder(ch) 'définit la variable d (dossiers d)
Set f = d.Files 'définit la variable f (fichiers de d)
For Each f1 In f 'boucle sur tous les fichiers du dossier d
    If f1.Name <> nom Then 'condition : si le nom du fichier est différent que le nom de ce fichier
        dat = Mid(f1.Name, 7, 7) 'récupère la partie concernant la date
        'si l'anné, le mois et le jour correspondent respectivement à l'anné, le mois et le jour de la date en cours, supprime le fichier
        If Right(dat, 4) = Year(Date) And Mid(dat, 3, 2) = Month(Date) And Left(dat, 2) = Day(Date) Then f1.Kill
    End If 'fin de la condition
Next f1
End Sub

L'autre solution serait d'enregistrer la copie sous :
ThisWorkbook.SaveAs ThisWorkbook.Path & "\Courar" & Format(Now, "ddmmyyyy") & ".xls" ce qui écraserait l'unique fichier copie du jour...

 
Dernière édition:
Re : Suppression de copies de classeur

Peut-être me suis-je mal expliqué
Voici ce que j'ai mis dans this worbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
'NomFichier = "COURRAR_" & Format(Now, "dd-mm-yyyy") & ".xls"
'ChDir "\\serva.msp.local\Courrier arrivee 2012"
'ActiveWorkbook.SaveAs Filename:="\\serva.msp.local\Courrier arrivee 2012\" & NomFichier, CreateBackup:=False
ThisWorkbook.SaveAs ThisWorkbook.Path & "\Courrier Arrivée " & Format(Now, "(dd-mm-yyyy-hh.mm.ss)") & ".xls"
End Sub
Le classeur s'appelle Courrier Arrivée et il est sauvegardé dans le même dossier à chaque fermeture avec la date et l'heure

Ce que je souhaite c'est un automatisme consistant à effacer toutes les copies de sauvegarde de la journée et ne conserver que la dernière mais peut être faut-il le faire au fur et à mesure

Le dossier s'appelle aussi courrier arrivée

Je ne souhaite pas de Sub

Merci de votre réponse
Cordialement
 
Re : Suppression de copies de classeur

Si tu n'es pas attaché à l'heure de sauvegarde, la derniere solution de robert est la plus simple.
Sinon il ne te reste qu'à intégrer son code dans ta "Sub Workbook_BeforeClose"
Frédéric
nb :merci Robert pour le code que tu as écrit pour direct 83. Il est parfait!
 
- 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

  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
570
Réponses
2
Affichages
470
L
Réponses
10
Affichages
2 K
L
Réponses
1
Affichages
1 K
Ludwig74
L
R
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…