OVH Cloud OVH Cloud

macro "SaveAs"

10 réponses
Avatar
j-pascal
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:=False

Else

MsgBox "Annulation d'enregistrement"

End If

End Sub

10 réponses

Avatar
lSteph
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


--
- -

Avatar
j-pascal
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


Avatar
MichDenis
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


Avatar
lSteph
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


--
- -



Avatar
lSteph
...
Nota il n'y aura pas ce message
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

d'office.

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


--
- -



Avatar
j-pascal
Bonsoir MichDenis,

Merci pour ton code, que je viens de tester.
Si j'ouvre une seconde fois le classeur, j'ai une fenêtre de débogage
m'indiquant que ce classeur est déjà ouvert, etc, etc...
Le but de cette macro est d'affecter un nom suivi de la date du jour en
guise de sauvegarde. Ton code me paraît compliqué (ce qui signifie en
d'autres termes, que je ne comprends pas tout ;-) ). Qu'apporte-t-il de plus
que le code que j'avais indiqué dans mon premier msg ? :

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

La question que je me pose est de savoir s'il est possible de fermer
automatiquement le classeur (sans passer par la fenêtre "enregistrer sous")
dès qu'on a lancé la macro !

A+ ?

JP

wrote:
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




Avatar
j-pascal
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






Avatar
lSteph
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




--
- -





Avatar
j-pascal
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










Avatar
lSteph
Bonsoir J-Pascal,
;o)
[mode casse-pied on]
ce n'est plus planning mais toto, soit!
le roi a dit je veux, et a ajouté ???
aussi on pourrait se contenter de répondre !!!
mais en l'occurence on le lui pardonne c'est un ami
en plus on y voit maintenant un peu plus clair.
[mode casse-pied off]

[mode opiniâtre résolument on]
La solution que je te proposais ainsi rectifiée un peu plus bas
(si tu n'en veux pas je la remballe et te propose autre chose,
ou même si cela ne m'inspire pas quelqu'un d'autre y pourvoira)
visait une simplification extrême à tous les points que tu viens
d'évoquer
(ton dernier point m'intrigue puisque cela ajouterait une date de
plus à chaque fois).
[mode opiniâtre résolument off]

Ainsi voici selon ceque je te propose:

[mode descriptif on]
on ouvre toujours le même fichier toto,
qui se trouve toujours au même endroit
celui d'où on le prend et où il s'enregistre
sauf que,
au passage on en profite crapuleusement pour enregistrer une copie
qui elle consigne une version avec dans le nom la date du jour.
Bien sûr elle serait écrasée sans qu'aucune question n'ait été posée
mais aisi j'ai prévu qu'il y en ait déjà une autre de posée.

Quand on voudra réouvrir le fichier il n'y aura pas besoin de chercher
une date à laquelle il eut été enregistré on prendra toto et pas un
autre puisqu'on l'enregistre lui-aussi.
[mode descriptif off]

Voici code pour le thisworkbook de toto ou planning:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim tst
If Not SaveAsUI Then
tst = MsgBox("Attention vous allez enregistrer ou écraser une copie "
_
& vbCrLf & _
" avec la date et le nom de ce fichier cliquer sur oui pour continuer"
_
& vbCrLf & _
" non pour ajouter hh:mm:ss, sinon annuler ", vbYesNoCancel)
With ThisWorkbook
ChDir .Path
Select Case tst
Case 6
.SaveCopyAs Format(Now, "ddmmmyyyy") & .Name
Case 7
.SaveCopyAs Format(Now, "ddmmmyyyy-hhnnss") & .Name
Case Else
Cancel = True
End Select
End With
End If
End Sub


'Cdlt.

'lSteph

Juste une parenthèse
en général le bureau est plutôt destiné à des liens avec un programme
ou un fichier ouvert par un programme le bureau est le dernier endroit
où selon mon humble avis il convienne d'enregistrer un classeur et
selon
ma véritable opinion c'est une énorme C______ie que de mettre tels des
auto collants sur un frigidaire plein de raccourcis sur son bureau.
Mais c'est pire d'y mettre des fichiers: change tes paramêtres généraux
d'excel et ensuite relance un de ces macins bureau qui en a d'autres tu
comprendras...







j-pascal a présenté l'énoncé suivant :
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






--
- -