enregistrer sous un autre nom, et continuer a travailler dedans
2 réponses
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
<*>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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$ba4acef3@news.orange.fr...
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
<*>
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.
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
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.
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.