OVH Cloud OVH Cloud

SaveAs sur fichier existant

2 réponses
Avatar
TotoRhino
Bonjour,

Sous Office et Windows 2000

A l'aide d'une macro, Je d=E9sire enregistrer un document=20
word sous autre nom. Mon probl=E8me est qu'un fichier exite=20
d=E9j=E0 sous cet "autre nom" et qu'au moment de la=20
sauvegarde, la bo=EEte de dialogue d'enregistrement me=20
demande le nom que je veux donner =E0 mon fichier, pourtant=20
renseign=E9 dans la macro. Je voudrais en fait que=20
l'enregistrement se fasse sans intervention de=20
l'utilisateur.

Documents.open FileName:=3Dancien
>"ancien" =E9tant le chemin et le nom du fichier =E0 ouvrir.

ActiveDocument.SaveAs premier
>je veux maintenant sauvegarder ce document sous un autre=20
nom, sachant tr=E8s bien qu'un fichier sous ce nom existe=20
d=E9j=E0 =E0 cet emplacement, "premier" =E9tant le chemin et le=20
nom du fichier =E0 enregistrer.

R=E9sultat, la bo=EEte de dialogue d'enregistrement me demande=20
le nom =E0 donner =E0 mon fichier.

A++

2 réponses

Avatar
Geo
Bonjour TotoRhino,


[...]


ActiveDocument.SaveAs premier
je veux maintenant sauvegarder ce document sous un autre
nom, sachant très bien qu'un fichier sous ce nom existe

déjà à cet emplacement, "premier" étant le chemin et le
nom du fichier à enregistrer.

Résultat, la boîte de dialogue d'enregistrement me demande
le nom à donner à mon fichier.


Je viens de faire un essai avec word 2000
il écrit sur l'ancien fichier sans rien demander.
J'ai même supprimé l'extension, ras,
voici mon intsruction :
ActiveDocument.SaveAs FileName:="F:TemptempDoc1"
Peut-être y a t-il une erreur dans le contenu de ta variable.
mets un 'debug.print premier' juste avant pour voir.

A+


Avatar
Merci de ta réponse.

En fait, j'ai trouvé la raison au non fonctionnement de ma
macro.

Mon but est d'envoyer un document Word par e-mail en pièce
jointe.
Le problème, est que le document envoyé en pièce jointe
est la version enregistrée sur le disque dur et si on fait
des modifs sur le document actif sans faire de sauvegarde,
le version jointe à l’e-mail n’est pas la plus récente (à
moins qu’il existe une façon de faire que je ne connais
pas). Donc, il suffirait de faire une sauvegarde
automatique avant de créer l’e-mail avec sa pièce jointe.
Seulement voilà, l’utilisateur ne veut pas forcément faire
une sauvegarde de ce document avant l’envoi de son
document et peut préférer conserver la version originale
de son document.
J’ai appliqué cette solution dans la macro : activer la
fonction back up avant de faire une sauvegarde, créer l’e-
mail et l’envoyer, fermer le document actif, rouvrir la
copie de back up et la sauvegarder sous le nom du fichier
en mémoire avant la création de l’e-mail, désactiver la
fonction back up. Et mon problème était dans l’ordre des
deux dernières actions : il faut désactiver la fonction
back up avant de faire la sauvegarde sinon Word ne veut
pas effectuer celle-ci et affiche la fenêtre invitant à
donner un nom à votre fichier.

En fait voici ma macro back up complète :
-----------------------------------------------------------
Sub backup()

chemin = ActiveDocument.Path
Fichier = ActiveDocument.Name
Nom_doc = Left(Fichier, 5)
premier = chemin & "" & Fichier

MsgBox chemin & "" & Fichier

Options.CreateBackup = True
If ActiveDocument.Saved = False Then ActiveDocument.Save
ancien = chemin & "" & "Copie de secours de " & Nom_doc
& ".wbk"

MsgBox ancien

ActiveDocument.ActiveWindow.Close
Documents.open FileName:=ancien

MsgBox premier

Options.CreateBackup = False
ActiveDocument.SaveAs FileName:=premier

End Sub
----------------------------------------------------------
A tout hasard, si quelqu’un connaît la commande pour
envoyer un document actif non sauvegardé sur le disque dur
par mail en pièce jointe, et bien qu’il n’hésite pas à me
dire comment faire, j’ai pas trouvé.

A++

-----Message d'origine-----
Bonjour TotoRhino,


[...]


ActiveDocument.SaveAs premier
je veux maintenant sauvegarder ce document sous un
autre



nom, sachant très bien qu'un fichier sous ce nom existe
déjà à cet emplacement, "premier" étant le chemin et le
nom du fichier à enregistrer.

Résultat, la boîte de dialogue d'enregistrement me
demande


le nom à donner à mon fichier.


Je viens de faire un essai avec word 2000
il écrit sur l'ancien fichier sans rien demander.
J'ai même supprimé l'extension, ras,
voici mon intsruction :
ActiveDocument.SaveAs FileName:="F:TemptempDoc1"
Peut-être y a t-il une erreur dans le contenu de ta
variable.

mets un 'debug.print premier' juste avant pour voir.

A+

.