OVH Cloud OVH Cloud

macro - SaveAs

6 réponses
Avatar
j-pascal
Bonjour,

J'ai un classeur à partir duquel je souhaite lancer une macro qui crée une
copie de sauvegarde à la date du jour.

Ca marche, une fois. Si je relance la macro, j'ai un msgbox qui me renvoit :
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur non,
j'ai une fenêtre de débogage : 'erreur d'exécution 1004' la méthode 'SaveAs'
de l'objet '_workbook' a échoué !

Autre pb, si je lance la macro, la sauvegarde est effectuée mais le fichier
original disparaît (normal !) ; ce que je voudrais, c'est qu'il se crée une
copie de sauvegarde (avec la date du jour) mais que l'affichage revienne au
classeur à enregistrer !

Ci-joint :

http://cjoint.com/?gevwxNOgg5

Un grand merci d'avance pour vos lumières ;-)

JP

6 réponses

Avatar
lSteph
Bonsoir,

Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub

'lSteph

"j-pascal" a écrit dans le message de news:

Bonjour,

J'ai un classeur à partir duquel je souhaite lancer une macro qui crée une
copie de sauvegarde à la date du jour.

Ca marche, une fois. Si je relance la macro, j'ai un msgbox qui me renvoit
: ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur non,
j'ai une fenêtre de débogage : 'erreur d'exécution 1004' la méthode
'SaveAs' de l'objet '_workbook' a échoué !

Autre pb, si je lance la macro, la sauvegarde est effectuée mais le
fichier original disparaît (normal !) ; ce que je voudrais, c'est qu'il se
crée une copie de sauvegarde (avec la date du jour) mais que l'affichage
revienne au classeur à enregistrer !

Ci-joint :

http://cjoint.com/?gevwxNOgg5

Un grand merci d'avance pour vos lumières ;-)

JP


Avatar
j-pascal
Bonsoir lSteph,

Merci !

En fait, je voudrai que le classeur sauvegardé par la macro se ferme (après
MAJ de la date) et que le classeur initial reste ouvert... (Apparemment
c'est le contraire qui se produit actuellement).

Question subsidiaire : pourquoi le classeur s'enregistre d'office sur le
bureau alors que le chemin d'accès n'est pas indiqué dans ton exemple ?
S'enregistre-t-il au même endroit qu'où il est lancé ? Pour ma part, j'avais
mis un truc du genre : ActiveWorkbook.SaveAs Filename:=str,
FileFormat:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse, CreateBackup:úlse
Peut-être à bientôt ?
Cordialement,

JP

Bonsoir,

Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub

'lSteph

"j-pascal" a écrit dans le message de news:

Bonjour,

J'ai un classeur à partir duquel je souhaite lancer une macro qui
crée une copie de sauvegarde à la date du jour.

Ca marche, une fois. Si je relance la macro, j'ai un msgbox qui me
renvoit
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur
non,
j'ai une fenêtre de débogage : 'erreur d'exécution 1004' la méthode

'SaveAs' de l'objet '_workbook' a échoué !

Autre pb, si je lance la macro, la sauvegarde est effectuée mais le
fichier original disparaît (normal !) ; ce que je voudrais, c'est
qu'il se crée une copie de sauvegarde (avec la date du jour) mais
que l'affichage revienne au classeur à enregistrer !

Ci-joint :

http://cjoint.com/?gevwxNOgg5

Un grand merci d'avance pour vos lumières ;-)

JP





Avatar
JpPradier
Bonjour j-pascal

Regarde du coté de SaveCopyAs

j-p
Avatar
lSteph
Bonjour j-pascal,
oui j'avais vu le 1004 et parti dans mon élan zappé la seconde partie!

Sub SaveClasseurAs()
Dim mypath As String

mypath = Application.GetSaveAsFilename("planning d'activité SVG " &
Format(Now, "ddmmmyyyy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveCopyAs mypath
MsgBox "Enregistrement d'une copie sous " & mypath & " effectué"
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub

'lSteph





"j-pascal" a écrit dans le message de news:

Bonsoir lSteph,

Merci !

En fait, je voudrai que le classeur sauvegardé par la macro se ferme
(après MAJ de la date) et que le classeur initial reste ouvert...
(Apparemment c'est le contraire qui se produit actuellement).

Question subsidiaire : pourquoi le classeur s'enregistre d'office sur le
bureau alors que le chemin d'accès n'est pas indiqué dans ton exemple ?
S'enregistre-t-il au même endroit qu'où il est lancé ? Pour ma part,
j'avais mis un truc du genre : ActiveWorkbook.SaveAs Filename:=str,
FileFormat:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse, CreateBackup:úlse
Peut-être à bientôt ?
Cordialement,

JP

Bonsoir,

Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub

'lSteph

"j-pascal" a écrit dans le message de news:

Bonjour,

J'ai un classeur à partir duquel je souhaite lancer une macro qui
crée une copie de sauvegarde à la date du jour.

Ca marche, une fois. Si je relance la macro, j'ai un msgbox qui me
renvoit
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur
non,
j'ai une fenêtre de débogage : 'erreur d'exécution 1004' la méthode

'SaveAs' de l'objet '_workbook' a échoué !

Autre pb, si je lance la macro, la sauvegarde est effectuée mais le
fichier original disparaît (normal !) ; ce que je voudrais, c'est
qu'il se crée une copie de sauvegarde (avec la date du jour) mais
que l'affichage revienne au classeur à enregistrer !

Ci-joint :

http://cjoint.com/?gevwxNOgg5

Un grand merci d'avance pour vos lumières ;-)

JP








Avatar
j-pascal
Re !

J'ai posté trop vite, il y a qq minutes ! J'ai trouvé (j'ai ajouté le chemin
à partir de C: DocumentsAndSettings, etc.). Par contre, ce que je crois
comprendre c'est que lorsque ce chemin n'est pas défini, il mène tout droit
à MesDocument ;-)

Maintenant tout est parfait. Merci encore pour ton aide car cette macro me
sera souvent très utile.

Cordialement,

JP


lSteph wrote:
Bonjour j-pascal,
oui j'avais vu le 1004 et parti dans mon élan zappé la seconde
partie!
Sub SaveClasseurAs()
Dim mypath As String

mypath = Application.GetSaveAsFilename("planning d'activité SVG " &
Format(Now, "ddmmmyyyy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveCopyAs mypath
MsgBox "Enregistrement d'une copie sous " & mypath & " effectué"
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub

'lSteph





"j-pascal" a écrit dans le message de news:

Bonsoir lSteph,

Merci !

En fait, je voudrai que le classeur sauvegardé par la macro se ferme
(après MAJ de la date) et que le classeur initial reste ouvert...
(Apparemment c'est le contraire qui se produit actuellement).

Question subsidiaire : pourquoi le classeur s'enregistre d'office
sur le bureau alors que le chemin d'accès n'est pas indiqué dans ton
exemple ? S'enregistre-t-il au même endroit qu'où il est lancé ?
Pour ma part, j'avais mis un truc du genre : ActiveWorkbook.SaveAs
Filename:=str, FileFormat:=xlNormal, Password:="",
WriteResPassword:="", ReadOnlyRecommended:úlse, CreateBackup:úlse
Peut-être à bientôt ?
Cordialement,

JP

Bonsoir,

Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub

'lSteph

"j-pascal" a écrit dans le message de
news:
Bonjour,

J'ai un classeur à partir duquel je souhaite lancer une macro qui
crée une copie de sauvegarde à la date du jour.

Ca marche, une fois. Si je relance la macro, j'ai un msgbox qui me
renvoit
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique
sur non,
j'ai une fenêtre de débogage : 'erreur d'exécution 1004' la méthode

'SaveAs' de l'objet '_workbook' a échoué !

Autre pb, si je lance la macro, la sauvegarde est effectuée mais le
fichier original disparaît (normal !) ; ce que je voudrais, c'est
qu'il se crée une copie de sauvegarde (avec la date du jour) mais
que l'affichage revienne au classeur à enregistrer !

Ci-joint :

http://cjoint.com/?gevwxNOgg5

Un grand merci d'avance pour vos lumières ;-)

JP









Avatar
lSteph
Bonsoir,
Une question est rarement stupide surtout si une réponse est utile.
On peut forcer à ce que cela soit Mes Documents ou C: ou autre chose suffit
de l'écrire mais par préférence dans ce que je t'ai proposé
le getsaveasfilename est là précisément pour que tu puisses envisager le
choix d'un répertoire ou modifier inopinément le nom de fichier.
Si tu ne fais pas d'autre choix il est plus que probable qu'il s'enregistre
sous mes documents qui est sans doute le répertoire par défaut
de ton application (voir outil option général) ou simplement celui en cours.

Cordialement.

lSteph

"j-pascal" a écrit dans le message de news:
%
Merci lSteph, c'est tout à fait ce à quoi je voulais arriver.
Désolé pour cette dernière question ... mais pourquoi le fichier
s'enregistre sous MesDocuments (je le lance depuis le bureau et j'aimerais
qu'il s'enregistre au même endroit !). Désolé mais je ne vois pas trace du
chemin qui mène à MesDocuments dans ton code (je crains que cette question
soit stupide, mais bon ...).
Peut-être à bientôt ;-)
JP

wrote:
Bonjour j-pascal,
oui j'avais vu le 1004 et parti dans mon élan zappé la seconde
partie!

Sub SaveClasseurAs()
Dim mypath As String

mypath = Application.GetSaveAsFilename("planning d'activité SVG " &
Format(Now, "ddmmmyyyy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveCopyAs mypath
MsgBox "Enregistrement d'une copie sous " & mypath & " effectué"
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub

'lSteph





"j-pascal" a écrit dans le message de news:

Bonsoir lSteph,

Merci !

En fait, je voudrai que le classeur sauvegardé par la macro se ferme
(après MAJ de la date) et que le classeur initial reste ouvert...
(Apparemment c'est le contraire qui se produit actuellement).

Question subsidiaire : pourquoi le classeur s'enregistre d'office
sur le bureau alors que le chemin d'accès n'est pas indiqué dans ton
exemple ? S'enregistre-t-il au même endroit qu'où il est lancé ?
Pour ma part, j'avais mis un truc du genre : ActiveWorkbook.SaveAs
Filename:=str, FileFormat:=xlNormal, Password:="",
WriteResPassword:="", ReadOnlyRecommended:úlse, CreateBackup:úlse
Peut-être à bientôt ?
Cordialement,

JP

Bonsoir,

Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub

'lSteph

"j-pascal" a écrit dans le message de
news:
Bonjour,

J'ai un classeur à partir duquel je souhaite lancer une macro qui
crée une copie de sauvegarde à la date du jour.

Ca marche, une fois. Si je relance la macro, j'ai un msgbox qui me
renvoit
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique
sur non,
j'ai une fenêtre de débogage : 'erreur d'exécution 1004' la méthode

'SaveAs' de l'objet '_workbook' a échoué !

Autre pb, si je lance la macro, la sauvegarde est effectuée mais le
fichier original disparaît (normal !) ; ce que je voudrais, c'est
qu'il se crée une copie de sauvegarde (avec la date du jour) mais
que l'affichage revienne au classeur à enregistrer !

Ci-joint :

http://cjoint.com/?gevwxNOgg5

Un grand merci d'avance pour vos lumières ;-)

JP