cs_Fab117
Messages postés23Date d'inscriptionlundi 11 août 2003StatutMembreDernière intervention 9 janvier 2008
-
7 janv. 2008 à 21:55
cs_Fab117
Messages postés23Date d'inscriptionlundi 11 août 2003StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
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.
cs_Fab117
Messages postés23Date d'inscriptionlundi 11 août 2003StatutMembreDerniè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