Sauvegarde Sauvegarde d'une copie d'un document

cs_Fab117 Messages postés 23 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 9 janvier 2008 - 7 janv. 2008 à 21:55
cs_Fab117 Messages postés 23 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 9 janvier 2008 - 9 janv. 2008 à 09:18
Salut,
Je ne sais pas si je suis sur le bon forum, mais étant bloqué, je tente ma chance.
J'ai un problème avec une macro pour Word en VBA.

Le but étant qu'au moment de la fermeture du fichier la macro s'exécute.Elle doit controler si je suis l'utilisateur et si c'est le cas me proposer de faire la sauvegarde d'une copie du document actif dans un répertoire pré-défini.
La raison étant que ces fichiers doivent être officiellement stockés sur un partage commun à beaucoup d'utilisateurs et que je souhaite faire une copie sur ma partition au cas où ...
Je pensais avoir réussi, mais après plusieurs mois de fonctionnement, suite à une erreur, j'ai voulu récupérer une copie d'un fichier Word et ...
... j'ai constaté que pour toutes les copies des documents word, il n'enregistrait que le modèle du document et rien de son contenu. Je me suis donc retrouvé chocolat.

Ci dessous le code de ma macro. Quelqu'un voit-il comment corriger le problème ?
J'insiste juste sur le fait que la macro doit faire une copie de l'original (car j'ai la mauvaise habitude de sauver mes fichiers au moment où je les ferme lorsqu'il m'ouvre la boite de dialogue "ce fichier a été modifié, voulez-vous l'enregistrer").
Merci d'avance pour votre aide.

Fab

Dans ThisDocument :

Private Sub Document_Close()
Dim Confirmation As Long

' Quitte la macro si je ne suis pas l'utilisateur
If Environ("UserName") <> "Fab117" Then Exit Sub

nom = ActiveDocument.Name

' Demande s'il faut enregistrer les modifications

Confirmation = MsgBox("Voulez vous enregistrer une copie du fichier " & nom & " ? ", vbYesNo)
If Confirmation = vbYes Then
ThisDocument.Save
' Fait une copie
Dossier = "C:\Fab\Copie des documents "
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

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 janv. 2008 à 01:48
Salut
Catégorie de la question modifiée (mémorise-le pour tes prochaines questions)

Pour ta question, lee plus simple est de trouver, à la main, comment faire pour sauvegarder correctement le fichier avec ses données.
Une fois que tu auras trouvé le bon menu, lance l'enregistrement d'une macro, puis répète une dernière fois ces manips de sauvegarde. Stoppe l'enregistrement puis va voir dans l'éditeur la syntaxe qu'il a mémorisé.
Inspire t-en pour ta programmation.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
8 janv. 2008 à 05:23
Salut,

j'ai essaye ta macro tel que tu nous l' as donne et de mon cote ca marche.
Essayes ca :

ThisDocument.SaveAs FileName:=Dossier & nom & " - " & strDate & ".doc", FileFormat:=wdFormatDocument

en fait FileFormat:=wdFormatDocument  force l'enregistrement en .doc.
Normalement tu n'en as pas besoin car c'est l'option par defaut mais essaye toujours cela ne coute rien ... Si j'ai bien compris, avec le fonctionnement que tu souhaits avoir : les fichiers pour les quels tu es "chocolat" on etes enregistres par d'autre utilisateurs ... toi ou peut etre d'autre etes configuer en modele.dot par defaut. Vas voir dans outils options... onglet sauvegarde et regarde dans la zone sauvgarde par defaut.

A+
0
cs_Fab117 Messages postés 23 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 9 janvier 2008
9 janv. 2008 à 09:18
Salut,
Merci pour vos réponses.
Tout d'abord, j'ai utilisé l'enregistreur de macro, mais pour ce problème il ne me sert à rien, car ce que je veux c'est une copie du fichier dans le répertoire pré-défini et non l'original.
Par contre je suis surpris que la macro fonctionne correctement. En es-tu sur ?
Chez moi, je l'ai mise dans un modèle de document. Maintenant quand je créé un nouveau document sur la base de ce modèle, la macro y est inclus, mais lorsque je l'exécute, elle me sauve le modèle de document sans intégrer tout ce que j'y est rajouté (elle me sauve en fait le modèle du document).
Concernant votre proposition de modification. chez moi, il plante sur
FileFormat:=wdFormatDocument

J'ai Word 2002 SP3 en Anglais

Bonne fin de journée.

Fab
0
Rejoignez-nous