Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2610 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Word VBA enregistrement d'une copie d'un document

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Word VBA enregistrement d'une copie d'un document

n°1571500
Fab117
Posté le 07-06-2007 à 13:17:06  profilanswer
 

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

mood
Publicité
Posté le 07-06-2007 à 13:17:06  profilanswer
 

n°1571530
jpcheck
Pioupiou
Posté le 07-06-2007 à 14:05:40  profilanswer
 

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

n°1571544
kiki29
Posté le 07-06-2007 à 14:30:42  profilanswer
 

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

n°1571546
Fab117
Posté le 07-06-2007 à 14:33:29  profilanswer
 

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

n°1571547
jpcheck
Pioupiou
Posté le 07-06-2007 à 14:35:58  profilanswer
 

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

n°1571569
kiki29
Posté le 07-06-2007 à 14:57:27  profilanswer
 

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
n°1571649
Fab117
Posté le 07-06-2007 à 16:25:38  profilanswer
 

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

n°1571650
jpcheck
Pioupiou
Posté le 07-06-2007 à 16:28:50  profilanswer
 

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

n°1571659
kiki29
Posté le 07-06-2007 à 16:39:14  profilanswer
 

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

n°1571672
Fab117
Posté le 07-06-2007 à 16:54:29  profilanswer
 

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

mood
Publicité
Posté le 07-06-2007 à 16:54:29  profilanswer
 

n°1571679
jpcheck
Pioupiou
Posté le 07-06-2007 à 16:57:10  profilanswer
 

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

n°1571971
Fab117
Posté le 08-06-2007 à 09:22:00  profilanswer
 

Comment faire ?
 
Fab

n°1571974
dante4024
Posté le 08-06-2007 à 09:28:26  profilanswer
 

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
n°1572252
Fab117
Posté le 08-06-2007 à 13:33:59  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Word VBA enregistrement d'une copie d'un document

 

Sujets relatifs
[VBA WORD] fonction rechercher / remplacer(RESOLU) diminution du temps d'execution [VBA EXCEL]
[vba] copie ligne et l'inserer dans une autre feuilleexportation pages word
[WORD, ACCESS]Lié des requêtes SQL à l'aide d'une macro sous wordenregistrement d'un nouveau fichier dans le repertoire d'origine ?
probleme enregistrementMacro excel pour traitement fichier word
algorithme de combinaison VBAAfficher un vecteur avec VBA
Plus de sujets relatifs à : Word VBA enregistrement d'une copie d'un document


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR