Bonjour,
En recherchant une solution à mon problème , j'ai trouvé un code VBA qui me convient parfaitement.
Cependant , j'ai besoin de faire les copies avec dates dans un répertoire différent, mais je ne sais pas comment faire.
La première sans les dates reste dans un dossier c: nommé fichier
La deuxième dans un répertoire d: nommé sauvegarde
.
Voici le code fait par patricktoulon.
Sub savefichier()
Dim chemin$, dat As Date, f, a&, oldfich$
chemin = ThisWorkbook.Path & "\"
BaseName = "monfichier"
dat = Now()
f = Dir(chemin & "monfichier*.xls*")
Do While f <> ""
a = a + 1
fdt = CDate(FileDateTime(chemin & f))
If f <> ThisWorkbook.Name Then If fdt < dat Then dat = CDate(fdt): oldfich = chemin & f
f = Dir
Loop
If a >= 3 Then Kill oldfich
ThisWorkbook.SaveCopyAs chemin & BaseName & "_" & Format(Now, "dd-mm-yyyy hh""H""mm""m""ss") & ".xlsm"
ActiveWorkbook.Save
End Sub
Merci pour aide
DanielRag
En recherchant une solution à mon problème , j'ai trouvé un code VBA qui me convient parfaitement.
Cependant , j'ai besoin de faire les copies avec dates dans un répertoire différent, mais je ne sais pas comment faire.
La première sans les dates reste dans un dossier c: nommé fichier
La deuxième dans un répertoire d: nommé sauvegarde
.
Voici le code fait par patricktoulon.
Sub savefichier()
Dim chemin$, dat As Date, f, a&, oldfich$
chemin = ThisWorkbook.Path & "\"
BaseName = "monfichier"
dat = Now()
f = Dir(chemin & "monfichier*.xls*")
Do While f <> ""
a = a + 1
fdt = CDate(FileDateTime(chemin & f))
If f <> ThisWorkbook.Name Then If fdt < dat Then dat = CDate(fdt): oldfich = chemin & f
f = Dir
Loop
If a >= 3 Then Kill oldfich
ThisWorkbook.SaveCopyAs chemin & BaseName & "_" & Format(Now, "dd-mm-yyyy hh""H""mm""m""ss") & ".xlsm"
ActiveWorkbook.Save
End Sub
Merci pour aide
DanielRag
Dernière édition: