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

proposer de faire une sauvegarde du classeur avant de le fermer

9 réponses
Avatar
Serge Nazarian
Bonjour,

Je souhaiterais que, quand je quitte un classeur Excel, il me soit proposé
de faire une copie de sauvegarde à un autre endroit.
Est-ce possible et si oui, comment ?

Merci pour toute aide.
Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu

9 réponses

Avatar
J
Bonjour

SAUVEGARDE automatique en fermant, avec enregistrement sous le nom du
contenu d'une cellule.
L'adresse est définie en adaptant ZtPath
Double Clic sur ThisWookbook Fenêtre du code, cliquer sur Workbook en
haut à gauche, puis Before_Close en haut à droite, et copie du code.
(Remarque : je ne suis pas l'auteur de ce code)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ZtPath As String
Dim ZtNom As String
ZtPath = "C:MesDocZaza"
ZtNom = Range("$A$1")
ActiveWorkbook.SaveAs Filename:=ZtPath & "" & ZtNom & ".xls"
End Sub

Le 03/10/2010 06:02, Serge Nazarian a écrit :
Bonjour,

Je souhaiterais que, quand je quitte un classeur Excel, il me soit
proposé de faire une copie de sauvegarde à un autre endroit.
Est-ce possible et si oui, comment ?

Merci pour toute aide.
Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu

Avatar
J
Autre chose.
Toujours à mettre dans Thisworkbook, code qui t'ouvre une fenêtre
"enregistrer sous" avant de fermer.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.Dialogs(xlDialogSaveAs).Show ""
End With
End Sub

Le 03/10/2010 06:02, Serge Nazarian a écrit :
Je souhaiterais que, quand je quitte un classeur Excel, il me soit
proposé de faire une copie de sauvegarde à un autre endroit.
Est-ce possible et si oui, comment ?
Avatar
Serge Nazarian
Dans le message :i8acqp$g5o$,
J@@ a écrit :
Bonjour

SAUVEGARDE automatique en fermant, avec enregistrement sous le nom du
contenu d'une cellule.
L'adresse est définie en adaptant ZtPath
Double Clic sur ThisWookbook Fenêtre du code, cliquer sur Workbook en
haut à gauche, puis Before_Close en haut à droite, et copie du code.
(Remarque : je ne suis pas l'auteur de ce code)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ZtPath As String
Dim ZtNom As String
ZtPath = "C:MesDocZaza"
ZtNom = Range("$A$1")
ActiveWorkbook.SaveAs Filename:=ZtPath & "" & ZtNom & ".xls"
End Sub





Encore merci !

Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Avatar
Serge Nazarian
Dans le message :i8ah6v$pj8$,
J@@ a écrit :
Autre chose.
Toujours à mettre dans Thisworkbook, code qui t'ouvre une fenêtre
"enregistrer sous" avant de fermer.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.Dialogs(xlDialogSaveAs).Show ""
End With
End Sub



Ceci marche bien aussi, mais présente l'inconvénient de ne plus avoir la
proposition de sauver le fichier lui-même à la fermeture.

On peut bien sûr ajouter dans le With
.Dialogs(xlDialogSaveWorkbook).Show ""

mais je trouve ce comportement bizarre.

Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Avatar
Serge Nazarian
Dans le message :i8ah6v$pj8$,
J@@ a écrit :
Autre chose.
Toujours à mettre dans Thisworkbook, code qui t'ouvre une fenêtre
"enregistrer sous" avant de fermer.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.Dialogs(xlDialogSaveAs).Show ""
End With
End Sub



J'ai écrit une bêtise.
Que ce soit avec l'une ou l'autre méthode, la boite de dialogue
"Voulez-vous enregistrer les modifications apportées à 'Nouveau Feuille de
calcul Microsoft Excel.xls'?"
n'apparaît pas.

C'est sans doute normal puisque

With Application
.Dialogs(xlDialogSaveAs).Show ""
End With

est la dernière instruction exécutée.

Comment la faire réapparaître ?

En effet
.Dialogs(xlDialogSaveWorkbook).Show ""
n'a pas exactement le même comportement. Elle est analogue à SaveAs et
s'exécute toujours, que le fichier ait changé ou pas.
Il y a peut-être une variable qui indique justement si ce fichier à changé
ou non ; si oui, un if ferait l'affaire.

Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Avatar
michdenis
Bonjour,

Je n'ai pas lu tout le fil mais pour répondre à ceci :

| Il y a peut-être une variable qui indique justement si ce fichier à changé

if ThisWorkbook.Saved = True then
Msgbox "modification"
else
Msgbox "pas de modification"
end if

Attention, les fonctions volatiles suivantes se mettent à jour dès l'ouverture d'un fichier Excel.
Conséquemment cela modifie le classeur même si l'usager n'y a fait aucune modifications.

Ces fonctions sont : Alea(), Lignes(), Colonnes(), Indirect(),
Aujourdhui(), Maintenant(), Cellule(), Decaler(),Index(), Zones()

--
MichD
--------------------------------------------


"Serge Nazarian" a écrit dans le message de groupe de discussion :
4ca9c75f$0$660$
Dans le message :i8ah6v$pj8$,
J@@ a écrit :
Autre chose.
Toujours à mettre dans Thisworkbook, code qui t'ouvre une fenêtre
"enregistrer sous" avant de fermer.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.Dialogs(xlDialogSaveAs).Show ""
End With
End Sub



J'ai écrit une bêtise.
Que ce soit avec l'une ou l'autre méthode, la boite de dialogue
"Voulez-vous enregistrer les modifications apportées à 'Nouveau Feuille de
calcul Microsoft Excel.xls'?"
n'apparaît pas.

C'est sans doute normal puisque

With Application
.Dialogs(xlDialogSaveAs).Show ""
End With

est la dernière instruction exécutée.

Comment la faire réapparaître ?

En effet
.Dialogs(xlDialogSaveWorkbook).Show ""
n'a pas exactement le même comportement. Elle est analogue à SaveAs et
s'exécute toujours, que le fichier ait changé ou pas.
Il y a peut-être une variable qui indique justement si ce fichier à changé
ou non ; si oui, un if ferait l'affaire.

Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Avatar
Serge Nazarian
Dans le message :i8cn4i$994$,
michdenis a écrit :
Bonjour,

Je n'ai pas lu tout le fil mais pour répondre à ceci :

Il y a peut-être une variable qui indique justement si ce fichier à
changé



if ThisWorkbook.Saved = True then
Msgbox "modification"
else
Msgbox "pas de modification"
end if

Attention, les fonctions volatiles suivantes se mettent à jour dès
l'ouverture d'un fichier Excel. Conséquemment cela modifie le
classeur même si l'usager n'y a fait aucune modifications.

Ces fonctions sont : Alea(), Lignes(), Colonnes(), Indirect(),
Aujourdhui(), Maintenant(), Cellule(), Decaler(),Index(), Zones()

--
MichD



Puisque Maintenant() se met à jour, la modification aura toujours lieu, me
semble-t-il.

Cordialement,
--
Serge Nazarian
Pour m'écrire directement : http://cerbermail.com/?ZDkROVSJlu
Avatar
michdenis
| Puisque Maintenant() se met à jour, la modification
| aura toujours lieu, me semble-t-il.

Effectivement.
Avatar
LSteph
Bonjour,

;o))
Et pourquoi pas un savecopyas tout simplement
(ceci fonctionne avec un classeur enregistré au moins une première
fois)



Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
MkDir "c:Dossierdescopies"
On Error GoTo 0
With ThisWorkbook
.SaveCopyAs "c:Dossierdescopies" & Format(Now, "yymmddhhnn") & .Name
End With
End Sub


'LSteph



On 3 oct, 18:02, "Serge Nazarian" wrote:
Bonjour,

Je souhaiterais que, quand je quitte un classeur Excel, il me soit propos é
de faire une copie de sauvegarde à un autre endroit.
Est-ce possible et si oui, comment ?

Merci pour toute aide.
Cordialement,
--
Serge Nazarian
Pour m'écrire directement :http://cerbermail.com/?ZDkROVSJlu