Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

enregistrer sous un autre nom, et continuer a travailler dedans

2 réponses
Avatar
FREDO
Bonjour,

Je voudrais automatiser des sauvegardes.
A savoir, dans un fichier, et un seul, un clic sur la disquette (sauvegarde)
créer une copie de sauvegarde du fichier (équivalent de enregistrer sous)
avec la date (et seulement) à la suite du nom.
En fait je voudrais, dans ce fichier intercepter le clic sur la disquette.
Voir même demander une confirmation à l'utilisateur.

Bien entendu, à la deuxième sauvegarde, la nouvelle date doit remplacer la
précédente pour avoir ceci :
<<document de base 16-10-2006.xls>>
et pas
<<document de base 12-10-2006 14-10-2006 16-10-2006.xls>>

J'ai récupéré cette routine, mais j'avoue ne pas arriver à la modifier comme
voulu

<*>
Public Sub Saveascopy()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Name = Left(ActiveWorkbook.Name, Count - 4)
strDate = Format(Date, "dd-mm-yy") '& " " & Format(Time, "h-mm-ss")
ActiveWorkbook.SaveAs Filename:=Name & strDate & ".xls"
End Sub
<*>

Merci.

2 réponses

Avatar
Patrick Penet
Comme tu ne semble pas avoir besoin de
l'heure de sauvegarde mais simplement
de la date (plusieurs fichiers pourront ainsi
être sauvegardés le même jour sous une
date de forme 16-10-06) modifie la sub
comme ça :

Public Sub Saveascopy()
Dim sName As String, sDateExt As String
With ThisWorkbook
sName = Left(.FullName, Len(.FullName) - 12)
sDateExt = Format(Date, "dd-mm-yy") & ".xls"
.SaveAs sName & sDateExt
End With
End Sub

Note que la date est au format 16-10-06 et
non pas 16-10-2006.

Note aussi que le nom de fichier doit exister
préalablement et se terminer par une chaîne
comme "16-10-06.xls".

PP

"FREDO" <fred> a écrit dans le message de news: 45339414$0$25947$
Bonjour,

Je voudrais automatiser des sauvegardes.
A savoir, dans un fichier, et un seul, un clic sur la disquette (sauvegarde)
créer une copie de sauvegarde du fichier (équivalent de enregistrer sous)
avec la date (et seulement) à la suite du nom.
En fait je voudrais, dans ce fichier intercepter le clic sur la disquette.
Voir même demander une confirmation à l'utilisateur.

Bien entendu, à la deuxième sauvegarde, la nouvelle date doit remplacer la
précédente pour avoir ceci :
<<document de base 16-10-2006.xls>>
et pas
<<document de base 12-10-2006 14-10-2006 16-10-2006.xls>>

J'ai récupéré cette routine, mais j'avoue ne pas arriver à la modifier comme
voulu

<*>
Public Sub Saveascopy()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Name = Left(ActiveWorkbook.Name, Count - 4)
strDate = Format(Date, "dd-mm-yy") '& " " & Format(Time, "h-mm-ss")
ActiveWorkbook.SaveAs Filename:=Name & strDate & ".xls"
End Sub
<*>

Merci.




Avatar
DarthMac
Sinon moi je peux proposer un ptit module que j'ai fait pour faire des
sauvegardes (que je systématise à l'ouverture de fichiers partagés et
pour lequel j'ai aussi un bouton dans ma barre d'outil.

A l'ouverture donc :

Private Sub Workbook_Open()
Call backup
End Sub

et pour la fameuse backup elle fait cela :
- proposer de faire une copie sous la forme :
[nom fichier]_date.xls ou encore [nom fichier]_2006.10.15.xls
- si ce fichier existe déjà (quelqu'un a déjà fait des modifs ce jour,
elle propose de re-sauvegarder quand même sous la forme :
[nom fichier]_date_heure.xls ou encore [nom
fichier]_2006.10.15_21.10.xls
- elle sauvegarde le fichier dans un répertoire "backup" qu'elle
propose de créer s'il n'existe pas encore.

La macro :
http://cjoint.com/?kqvqA3X3RX

Attention, le code n'est peut-être pas des plus purs car je l'ai fait
il y a longtemps (dans mes débuts) et malgré quelques modifs, je ne
l'ai jamais retravaillée pour l'améliorer. D'ailleurs je suis preneur
de toute amélioration

Autre chose :

Patrick Penet a exposé le 16/10/2006 :
Note que la date est au format 16-10-06 et
non pas 16-10-2006.


ce format est mieux si l'on veut pouvoir classer les fichier dans
l'ordre chronologique et vite retrouver un des backups. J'ai
effectivement adopté ce format aussi dans ma macro backup.

Voilou, espérant être utile...

mac