Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer sous"
puisque dans le cas présent, l'enregistrement se fera dans le même répertoire
que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date d'aujourd'hui...",
vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer sous"
puisque dans le cas présent, l'enregistrement se fera dans le même répertoire
que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date d'aujourd'hui...",
vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer sous"
puisque dans le cas présent, l'enregistrement se fera dans le même répertoire
que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date d'aujourd'hui...",
vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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
à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour qu'un
classeur s'enregistre par défaut dans le même répertoire que celui dans
lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le classeur
s'enregistre aussi sur le bureau, mais comme je ne suis pas sûr du chemin
d'accès du PC auquel il est destiné, je préfére qu'il reste au même endroit
que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche parfaitement
!
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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
à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour qu'un
classeur s'enregistre par défaut dans le même répertoire que celui dans
lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le classeur
s'enregistre aussi sur le bureau, mais comme je ne suis pas sûr du chemin
d'accès du PC auquel il est destiné, je préfére qu'il reste au même endroit
que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche parfaitement
!
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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
à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour qu'un
classeur s'enregistre par défaut dans le même répertoire que celui dans
lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le classeur
s'enregistre aussi sur le bureau, mais comme je ne suis pas sûr du chemin
d'accès du PC auquel il est destiné, je préfére qu'il reste au même endroit
que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche parfaitement
!
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur non,
dans ce cas juste à savoir que si tu lance la macro c'est oui
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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
à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour qu'un
classeur s'enregistre par défaut dans le même répertoire que celui dans
lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le classeur
s'enregistre aussi sur le bureau, mais comme je ne suis pas sûr du chemin
d'accès du PC auquel il est destiné, je préfére qu'il reste au même endroit
que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur non,
dans ce cas juste à savoir que si tu lance la macro c'est oui
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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
à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour qu'un
classeur s'enregistre par défaut dans le même répertoire que celui dans
lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le classeur
s'enregistre aussi sur le bureau, mais comme je ne suis pas sûr du chemin
d'accès du PC auquel il est destiné, je préfére qu'il reste au même endroit
que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
ce fichier existe déjà, voulez-vous le remplacer ? Si je clique sur non,
dans ce cas juste à savoir que si tu lance la macro c'est oui
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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
à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour qu'un
classeur s'enregistre par défaut dans le même répertoire que celui dans
lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le classeur
s'enregistre aussi sur le bureau, mais comme je ne suis pas sûr du chemin
d'accès du PC auquel il est destiné, je préfére qu'il reste au même endroit
que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Sub Test()
Dim Wk As String, Wn As Workbook
Dim NouveauNom As String
Wk = ThisWorkbook.FullName
NouveauNom = "Tota1.xls" 'A DÉFINIR
If Dir(ThisWorkbook.Path & "" & NouveauNom) <> "" Then
If MsgBox("Un fichier existe déjà." & vbCrLf & _
"Désirez-vous l'écraser ? ", vbCritical + _
vbYesNo, "Attention") = vbYes Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NouveauNom
Set Wn = ActiveWorkbook
Workbooks.Open Wk
Wn.Close
Application.DisplayAlerts = True
Else
MsgBox "Opération annulée.", vbInformation _
+ vbOKOnly, "Attention"
End If
Else
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NouveauNom
Set Wn = ActiveWorkbook
Workbooks.Open Wk
Wn.Close
Application.DisplayAlerts = True
End If
End Sub
"j-pascal" a écrit dans le message de news:
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Sub Test()
Dim Wk As String, Wn As Workbook
Dim NouveauNom As String
Wk = ThisWorkbook.FullName
NouveauNom = "Tota1.xls" 'A DÉFINIR
If Dir(ThisWorkbook.Path & "" & NouveauNom) <> "" Then
If MsgBox("Un fichier existe déjà." & vbCrLf & _
"Désirez-vous l'écraser ? ", vbCritical + _
vbYesNo, "Attention") = vbYes Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NouveauNom
Set Wn = ActiveWorkbook
Workbooks.Open Wk
Wn.Close
Application.DisplayAlerts = True
Else
MsgBox "Opération annulée.", vbInformation _
+ vbOKOnly, "Attention"
End If
Else
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NouveauNom
Set Wn = ActiveWorkbook
Workbooks.Open Wk
Wn.Close
Application.DisplayAlerts = True
End If
End Sub
"j-pascal" <nospam-j-pascal@free.fr> a écrit dans le message de news:
u19tXoRFHHA.1248@TK2MSFTNGP02.phx.gbl...
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Sub Test()
Dim Wk As String, Wn As Workbook
Dim NouveauNom As String
Wk = ThisWorkbook.FullName
NouveauNom = "Tota1.xls" 'A DÉFINIR
If Dir(ThisWorkbook.Path & "" & NouveauNom) <> "" Then
If MsgBox("Un fichier existe déjà." & vbCrLf & _
"Désirez-vous l'écraser ? ", vbCritical + _
vbYesNo, "Attention") = vbYes Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NouveauNom
Set Wn = ActiveWorkbook
Workbooks.Open Wk
Wn.Close
Application.DisplayAlerts = True
Else
MsgBox "Opération annulée.", vbInformation _
+ vbOKOnly, "Attention"
End If
Else
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=NouveauNom
Set Wn = ActiveWorkbook
Workbooks.Open Wk
Wn.Close
Application.DisplayAlerts = True
End If
End Sub
"j-pascal" a écrit dans le message de news:
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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.
(suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple !
Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath &
" effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath &
" effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath &
" effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une erreur 1004 !
Par ailleurs, ce qui est plus génant, c'est qu'aucun msg ne m'indique que le
classeur existe déjà (quand on fait plusieurs sauvegarde avec la même date)
avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur s'enregistre
dans le même répertoire que celui où il était lancé ;-). Ici, tout se fait
dans 'mes documents'
JP
wrote:Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath &
" effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une erreur 1004 !
Par ailleurs, ce qui est plus génant, c'est qu'aucun msg ne m'indique que le
classeur existe déjà (quand on fait plusieurs sauvegarde avec la même date)
avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur s'enregistre
dans le même répertoire que celui où il était lancé ;-). Ici, tout se fait
dans 'mes documents'
JP
wrote:
Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath &
" effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une erreur 1004 !
Par ailleurs, ce qui est plus génant, c'est qu'aucun msg ne m'indique que le
classeur existe déjà (quand on fait plusieurs sauvegarde avec la même date)
avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur s'enregistre
dans le même répertoire que celui où il était lancé ;-). Ici, tout se fait
dans 'mes documents'
JP
wrote:Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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
Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès pour
qu'un classeur s'enregistre par défaut dans le même répertoire que
celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis pas
sûr du chemin d'accès du PC auquel il est destiné, je préfére qu'il
reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour ...
(copyrights ISteph et Isabelle ;-) et petits ajustements de JP)
Puis-je fermer le classeur sans passer par la fenêtre "enregistrer
sous" puisque dans le cas présent, l'enregistrement se fera dans le
même répertoire que celui où a été ouvert le fichier ?
Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath &
" effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour,
Si tu rouvres le même qui est déjà ouvert,
il est normal que tu aies ce message.
Si l'objectif est d'avoir la vraie dernière situation du jour il est
logique d'écraser.
Toutefois, à mesure que tu reprends ce fil et évoques tantôt un
inconvénient relevant d'une hypothèdse tantôt un relevant d'une autre,
on en vient à cette question,
que veux tu faire exactement, car là ce que l'on croyait comprendre
change à chaque fois.
Cdlt.
lSteph
j-pascal a pensé très fort :Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une
erreur 1004 ! Par ailleurs, ce qui est plus génant, c'est qu'aucun
msg ne m'indique que le classeur existe déjà (quand on fait
plusieurs sauvegarde avec la même date) avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur
s'enregistre dans le même répertoire que celui où il était lancé
;-). Ici, tout se fait dans 'mes documents'
JP
wrote:Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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 Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès
pour qu'un classeur s'enregistre par défaut dans le même
répertoire que celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis
pas sûr du chemin d'accès du PC auquel il est destiné, je préfére
qu'il reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour
... (copyrights ISteph et Isabelle ;-) et petits ajustements de
JP) Puis-je fermer le classeur sans passer par la fenêtre
"enregistrer sous" puisque dans le cas présent, l'enregistrement
se fera dans le même répertoire que celui où a été ouvert le
fichier ? Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire &
"planning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath
& " effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour,
Si tu rouvres le même qui est déjà ouvert,
il est normal que tu aies ce message.
Si l'objectif est d'avoir la vraie dernière situation du jour il est
logique d'écraser.
Toutefois, à mesure que tu reprends ce fil et évoques tantôt un
inconvénient relevant d'une hypothèdse tantôt un relevant d'une autre,
on en vient à cette question,
que veux tu faire exactement, car là ce que l'on croyait comprendre
change à chaque fois.
Cdlt.
lSteph
j-pascal a pensé très fort :
Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une
erreur 1004 ! Par ailleurs, ce qui est plus génant, c'est qu'aucun
msg ne m'indique que le classeur existe déjà (quand on fait
plusieurs sauvegarde avec la même date) avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur
s'enregistre dans le même répertoire que celui où il était lancé
;-). Ici, tout se fait dans 'mes documents'
JP
wrote:
Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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 Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès
pour qu'un classeur s'enregistre par défaut dans le même
répertoire que celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis
pas sûr du chemin d'accès du PC auquel il est destiné, je préfére
qu'il reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour
... (copyrights ISteph et Isabelle ;-) et petits ajustements de
JP) Puis-je fermer le classeur sans passer par la fenêtre
"enregistrer sous" puisque dans le cas présent, l'enregistrement
se fera dans le même répertoire que celui où a été ouvert le
fichier ? Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire &
"planning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath
& " effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Bonjour,
Si tu rouvres le même qui est déjà ouvert,
il est normal que tu aies ce message.
Si l'objectif est d'avoir la vraie dernière situation du jour il est
logique d'écraser.
Toutefois, à mesure que tu reprends ce fil et évoques tantôt un
inconvénient relevant d'une hypothèdse tantôt un relevant d'une autre,
on en vient à cette question,
que veux tu faire exactement, car là ce que l'on croyait comprendre
change à chaque fois.
Cdlt.
lSteph
j-pascal a pensé très fort :Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une
erreur 1004 ! Par ailleurs, ce qui est plus génant, c'est qu'aucun
msg ne m'indique que le classeur existe déjà (quand on fait
plusieurs sauvegarde avec la même date) avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur
s'enregistre dans le même répertoire que celui où il était lancé
;-). Ici, tout se fait dans 'mes documents'
JP
wrote:Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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 Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès
pour qu'un classeur s'enregistre par défaut dans le même
répertoire que celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis
pas sûr du chemin d'accès du PC auquel il est destiné, je préfére
qu'il reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour
... (copyrights ISteph et Isabelle ;-) et petits ajustements de
JP) Puis-je fermer le classeur sans passer par la fenêtre
"enregistrer sous" puisque dans le cas présent, l'enregistrement
se fera dans le même répertoire que celui où a été ouvert le
fichier ? Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire &
"planning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath
& " effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Re,
J'ai un classeur sur lequel se trouve un bouton de macro. En appuyant sur ce
bouton, je veux que ledit classeur se ferme en se renommant "toto svg du
jj-mm-aa). Sachant que je souhaite :
- qu'il s'enregistre au même endroit qu'il a été ouvert (s'il se trouve sur
le bureau, il s'enregistre sur le bureau, s'il est sous "Mes Documents", il
s'enregistre sous "Mes Documents", etc.)
- que la fenêtre "enregistrer sous" n'apparaisse pas entre le moment où j'ai
lancé la macro et le moment où la sauvegarde a été effectuée.
- que j'ai un message m'indiquant (la cas échéant) que ce fichier existe déjà
(si je l'ouvre plusieurs fois le même jour, donc avec la même date !) et
qu'il me propose de l'écraser...
- et cerise sur la gateau (relative au dernier point), qu'il s'enregistre
sous "toto svg *2* du jj-mm-aa" etc. dans le cas de sauvegardes multiple un
même jour. Mais ça l'option luxe ;-)
- j'allais oublier : il faut que le classeur actif (celui à partir duquel
j'ai lancé la macro) se ferme sans enregistrer les modifications, puisque
c'est celui que j'ai enregistré avec la nouvelle date qui sera utilisé la
prochaine fois !
A+ ???
JP
PS : ce code est presque bon, sauf qu'il affiche la fenêtre "enregistrer
sous" :
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date d'aujourd'hui...",
vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
.lSteph wrote:Bonjour,
Si tu rouvres le même qui est déjà ouvert,
il est normal que tu aies ce message.
Si l'objectif est d'avoir la vraie dernière situation du jour il est
logique d'écraser.
Toutefois, à mesure que tu reprends ce fil et évoques tantôt un
inconvénient relevant d'une hypothèdse tantôt un relevant d'une autre,
on en vient à cette question,
que veux tu faire exactement, car là ce que l'on croyait comprendre
change à chaque fois.
Cdlt.
lSteph
j-pascal a pensé très fort :Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une
erreur 1004 ! Par ailleurs, ce qui est plus génant, c'est qu'aucun
msg ne m'indique que le classeur existe déjà (quand on fait
plusieurs sauvegarde avec la même date) avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur
s'enregistre dans le même répertoire que celui où il était lancé
;-). Ici, tout se fait dans 'mes documents'
JP
wrote:Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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 Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès
pour qu'un classeur s'enregistre par défaut dans le même
répertoire que celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis
pas sûr du chemin d'accès du PC auquel il est destiné, je préfére
qu'il reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour
... (copyrights ISteph et Isabelle ;-) et petits ajustements de
JP) Puis-je fermer le classeur sans passer par la fenêtre
"enregistrer sous" puisque dans le cas présent, l'enregistrement
se fera dans le même répertoire que celui où a été ouvert le
fichier ? Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire &
"planning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath
& " effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Re,
J'ai un classeur sur lequel se trouve un bouton de macro. En appuyant sur ce
bouton, je veux que ledit classeur se ferme en se renommant "toto svg du
jj-mm-aa). Sachant que je souhaite :
- qu'il s'enregistre au même endroit qu'il a été ouvert (s'il se trouve sur
le bureau, il s'enregistre sur le bureau, s'il est sous "Mes Documents", il
s'enregistre sous "Mes Documents", etc.)
- que la fenêtre "enregistrer sous" n'apparaisse pas entre le moment où j'ai
lancé la macro et le moment où la sauvegarde a été effectuée.
- que j'ai un message m'indiquant (la cas échéant) que ce fichier existe déjà
(si je l'ouvre plusieurs fois le même jour, donc avec la même date !) et
qu'il me propose de l'écraser...
- et cerise sur la gateau (relative au dernier point), qu'il s'enregistre
sous "toto svg *2* du jj-mm-aa" etc. dans le cas de sauvegardes multiple un
même jour. Mais ça l'option luxe ;-)
- j'allais oublier : il faut que le classeur actif (celui à partir duquel
j'ai lancé la macro) se ferme sans enregistrer les modifications, puisque
c'est celui que j'ai enregistré avec la nouvelle date qui sera utilisé la
prochaine fois !
A+ ???
JP
PS : ce code est presque bon, sauf qu'il affiche la fenêtre "enregistrer
sous" :
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date d'aujourd'hui...",
vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
.lSteph wrote:
Bonjour,
Si tu rouvres le même qui est déjà ouvert,
il est normal que tu aies ce message.
Si l'objectif est d'avoir la vraie dernière situation du jour il est
logique d'écraser.
Toutefois, à mesure que tu reprends ce fil et évoques tantôt un
inconvénient relevant d'une hypothèdse tantôt un relevant d'une autre,
on en vient à cette question,
que veux tu faire exactement, car là ce que l'on croyait comprendre
change à chaque fois.
Cdlt.
lSteph
j-pascal a pensé très fort :
Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une
erreur 1004 ! Par ailleurs, ce qui est plus génant, c'est qu'aucun
msg ne m'indique que le classeur existe déjà (quand on fait
plusieurs sauvegarde avec la même date) avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur
s'enregistre dans le même répertoire que celui où il était lancé
;-). Ici, tout se fait dans 'mes documents'
JP
wrote:
Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :
Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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 Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès
pour qu'un classeur s'enregistre par défaut dans le même
répertoire que celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis
pas sûr du chemin d'accès du PC auquel il est destiné, je préfére
qu'il reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:
Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :
Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour
... (copyrights ISteph et Isabelle ;-) et petits ajustements de
JP) Puis-je fermer le classeur sans passer par la fenêtre
"enregistrer sous" puisque dans le cas présent, l'enregistrement
se fera dans le même répertoire que celui où a été ouvert le
fichier ? Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire &
"planning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath
& " effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP
Re,
J'ai un classeur sur lequel se trouve un bouton de macro. En appuyant sur ce
bouton, je veux que ledit classeur se ferme en se renommant "toto svg du
jj-mm-aa). Sachant que je souhaite :
- qu'il s'enregistre au même endroit qu'il a été ouvert (s'il se trouve sur
le bureau, il s'enregistre sur le bureau, s'il est sous "Mes Documents", il
s'enregistre sous "Mes Documents", etc.)
- que la fenêtre "enregistrer sous" n'apparaisse pas entre le moment où j'ai
lancé la macro et le moment où la sauvegarde a été effectuée.
- que j'ai un message m'indiquant (la cas échéant) que ce fichier existe déjà
(si je l'ouvre plusieurs fois le même jour, donc avec la même date !) et
qu'il me propose de l'écraser...
- et cerise sur la gateau (relative au dernier point), qu'il s'enregistre
sous "toto svg *2* du jj-mm-aa" etc. dans le cas de sauvegardes multiple un
même jour. Mais ça l'option luxe ;-)
- j'allais oublier : il faut que le classeur actif (celui à partir duquel
j'ai lancé la macro) se ferme sans enregistrer les modifications, puisque
c'est celui que j'ai enregistré avec la nouvelle date qui sera utilisé la
prochaine fois !
A+ ???
JP
PS : ce code est presque bon, sauf qu'il affiche la fenêtre "enregistrer
sous" :
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date d'aujourd'hui...",
vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath & "
effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
.lSteph wrote:Bonjour,
Si tu rouvres le même qui est déjà ouvert,
il est normal que tu aies ce message.
Si l'objectif est d'avoir la vraie dernière situation du jour il est
logique d'écraser.
Toutefois, à mesure que tu reprends ce fil et évoques tantôt un
inconvénient relevant d'une hypothèdse tantôt un relevant d'une autre,
on en vient à cette question,
que veux tu faire exactement, car là ce que l'on croyait comprendre
change à chaque fois.
Cdlt.
lSteph
j-pascal a pensé très fort :Bonsoir lSteph,
Si je rouvre le classeur sauvegardé une première fois, j'ai une
erreur 1004 ! Par ailleurs, ce qui est plus génant, c'est qu'aucun
msg ne m'indique que le classeur existe déjà (quand on fait
plusieurs sauvegarde avec la même date) avant d'écraser !
A+ ?
PS : dans ton code initial, je trouvais bien que le classeur
s'enregistre dans le même répertoire que celui où il était lancé
;-). Ici, tout se fait dans 'mes documents'
JP
wrote:Bonjour,
Ceci devrait suffir:
Sub SaveDate()
ActiveWorkbook.SaveCopyAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy") & ".xls"
End Sub
'cdlt
j-pascal a exprimé avec précision :Bonjour lSteph,
Voici la synthèse du précédent fil :
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 !
Réponse de ISteph du 04/06/2006
Sub SaveClasseurAs()
On Error Resume Next
ActiveWorkbook.SaveAs _
"planning d'activité SVG " & Format(Now, "ddmmmyyyy")
End Sub
JP :
En fait, je voudrais 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 Réponse de ISteph :
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
JP :
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 à "MesDocuments"
Maintenant tout est parfait !
ISteph :
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. (suite)
Pourriez-vous me dire ce qu'il faut mettre comme chemin d'accès
pour qu'un classeur s'enregistre par défaut dans le même
répertoire que celui dans lequel il a été ouvert ?
Actuellement, j'ai ceci (que je dois à ISteph) :
Sub SaveClasseurAsTer()
Dim mypath As String
mypath = Application.GetSaveAsFilename("C:Documents and
SettingsJean-PascalBureauplanning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".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
Si j'enlève "C:Documents and SettingsJean-PascalBureau", le
classeur s'enregistre aussi sur le bureau, mais comme je ne suis
pas sûr du chemin d'accès du PC auquel il est destiné, je préfére
qu'il reste au même endroit que le fichier initial...
Réponse d'Isabelle :
CheminComplet = ActiveWorkbook.FullName
CheminRépertoire = ActiveWorkbook.Path & ""
JP :
Merci pour ta réponse, mais je ne sais comment l'insérer dans mon
exemple ! Réponse d'Isabelle :
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire & "planning
d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
Merci beaucoup !
( ... je ne te surprendrai pas en te disant que ... ) ça marche
parfaitement !
wrote:Bonjour,
Je ne me souviens plus de l'objectif premier ni du fil exact
mais
s'il n'y a plus d'objectif sur le choix d'un répertoire
Un savecopyAs devrait faire l'affaire.
Cdlt.
lSteph
j-pascal avait prétendu :Bonjour,
Ci-après le code pour sauvegarder un fichier à la date du jour
... (copyrights ISteph et Isabelle ;-) et petits ajustements de
JP) Puis-je fermer le classeur sans passer par la fenêtre
"enregistrer sous" puisque dans le cas présent, l'enregistrement
se fera dans le même répertoire que celui où a été ouvert le
fichier ? Un grand merci d'avance pour vos (éventuelles) réponses :-)
JP
Dim mypath As String
Sub SaveClasseurAs() 'le classeur se ferme après la svg
MsgBox "Vous allez effectuer une sauvegarde à la date
d'aujourd'hui...", vbOKOnly, "svg"
On Error Resume Next
CheminRépertoire = ActiveWorkbook.Path & ""
mypath = Application.GetSaveAsFilename(CheminRépertoire &
"planning d'activité SVG " & _
Format(Now, "dd-mm-yy") & ".xls")
If mypath <> "Faux" Then
ActiveWorkbook.SaveAs mypath '<> "SaveCopyAs"
'MsgBox "Enregistrement d'une sauvegarde sous " & mypath
& " effectuée"
Application.ThisWorkbook.Close SaveChanges:úlse
Else
MsgBox "Annulation d'enregistrement"
End If
End Sub
+ ma présente demande (fermer le fichier),
Bonne journée,
JP