Word VBA enregistrement d'une copie d'un document

Word VBA enregistrement d'une copie d'un document - VB/VBA/VBS - Programmation

Marsh Posté le 07-06-2007 à 13:17:06    

Salut,
Je voudrais que ma macro enregistre une copie du document actif dans un répertoire selectionné.
 
Avec Excel, j'ai la ligne : ThisWorkbook.SaveCopyAs Filename:=Dossier & Nom & " - " & strDate & ".xls" qui fonctionne parfaitement.
J'ai essayé avec Word : ThisDocument.SaveCopyAs FileName:=Dossier & Nom & " - " & strDate & ".doc", mais il plante sur le .SaveCopyAs
 
Quelqu'un aurait-il svp la solution ?
 
Fab

Reply

Marsh Posté le 07-06-2007 à 13:17:06   

Reply

Marsh Posté le 07-06-2007 à 14:05:40    

bonjour,
quel est le numéro d'erreur stp ?

Reply

Marsh Posté le 07-06-2007 à 14:30:42    

SaveCopyAs [F1] sous Excel
SaveCopyAs [F1] sous Word

Reply

Marsh Posté le 07-06-2007 à 14:33:29    

Salut,
Pas de numéro d'erreur :
http://img442.imageshack.us/img442/1601/messagederreur025an6.jpg
 
Fab

Reply

Marsh Posté le 07-06-2007 à 14:35:58    

mets le dans l'évènement before close plutot, non ?

Reply

Marsh Posté le 07-06-2007 à 14:57:27    

SaveCopyAs [F1] sous Word  
 


SaveCopyAs
 
Enregistre l'élément de projet HTML spécifié en utilisant un nouveau nom de fichier.
 
expression.SaveCopyAs(Filename)
 
expression   Objet HTMLProjectItem.
 
Filename   Argument de type String obligatoire. Chemin d'accès complet du fichier dans lequel vous souhaitez enregistrer l'élément de projet HTML.
 
Exemple
Cet exemple montre comment enregistrer une copie du texte de l'élément de projet HTML en cours dans le fichier NewScript.txt.
 
ActiveWorkbook.HTMLProject.HTMLProjectItems.Item(1).SaveCopyAs("C:\NewScript.txt" )


Message édité par kiki29 le 07-06-2007 à 14:59:11
Reply

Marsh Posté le 07-06-2007 à 16:25:38    

Merci pour votre aide, mais je n'y suis encore.
 
Jpcheck, avec Document_BeforeClose, la macro ne s'éxécute apparement pas lorsque je ferme le document. Par contre, c'est le cas avec Document_Close
 
Kiki, j'ai regardé l'aide dans Excel et Word concernant SaveCopyAs et si je comprends bien, il peut sauver le fichier au format html et non doc. Ce n'est donc pas ce que je cherche ?
 
Fab

Reply

Marsh Posté le 07-06-2007 à 16:28:50    

et pkoi ne fais-tu pas à la place un .save puis un .saveas à la place du savecopyas ?

Reply

Marsh Posté le 07-06-2007 à 16:39:14    

>> fab117 : S'il s'agit d'un projet HTML ce qui ne semble pas être le cas , et donc SaveCopyAs ne s'applique pas , d'ou le message d'erreur. Suis le conseil de JpCheck

Reply

Marsh Posté le 07-06-2007 à 16:54:29    

Le problème avec ce que tu proposes Jpcheck, c'est qu'avec ça, dans tous les cas il sauvera le document et ça me fait un peu peur.
Il arrive assez souvent que je change quelque chose dans un document et que finalement ça ne me plait pas => je ferme celui-ci et lorsqu'il me demande si je veux sauver, je dis non.
 
Ou alors, il faudrait qu'il me demande confirmation pour le .Save, mais pas pour le .SaveAs
Est-ce faisable ?
 
Fab

Reply

Marsh Posté le 07-06-2007 à 16:54:29   

Reply

Marsh Posté le 07-06-2007 à 16:57:10    

tu simules le message de confirmation avec une msgbox de type yescancel ?

Reply

Marsh Posté le 08-06-2007 à 09:22:00    

Comment faire ?
 
Fab

Reply

Marsh Posté le 08-06-2007 à 09:28:26    

Code :
  1. Dim confirmation as Long
  2. confirmation = MsgBox("Voulez vous enregistrer le fichier " & Nom & " ? ", vbYesNo)
  3. If confirmation = vbYes Then
  4. 'Procedure de sauvegarde
  5. end if


Message édité par dante4024 le 08-06-2007 à 09:28:48
Reply

Marsh Posté le 08-06-2007 à 13:33:59    

Merci pour votre aide,
Voici le code complet pour le cas où ça interresserait quelqu'un d'autre.
 
Fab
 
Private Sub Document_Close()
Dim Confirmation As Long
 
 
' Quitte la macro si je ne suis pas l'utilisateur
If Environ("UserName" ) <> "Toto" Then Exit Sub
 
nom = ActiveDocument.Name
 
 
 
' Demande s'il faut enregistrer les modifications
 
Confirmation = MsgBox("Voulez vous enregistrer le fichier " & nom & " ? ", vbYesNo)
If Confirmation = vbYes Then
ThisDocument.Save
End If
 
 
Confirmation = MsgBox("Voulez vous faire une copie du fichier " & nom & " ? ", vbYesNo)
If Confirmation = vbYes Then
ThisDocument.Save
' Fait une copie
Dossier = "H:\DATA\GF\Gestion de projets\Circuit d'eau\Copie des documents qualite"
Count = Len(ActiveDocument.Name)
nom = Left(ActiveDocument.Name, Count - 4)
strDate = Format(Date, "dd-mm-yy" ) & " - " & Format(Time, "h-mm-ss" )
 
ThisDocument.SaveAs FileName:=Dossier & nom & " - " & strDate & ".doc"
End If
 
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed