Bonjour, je reviens avec un problème au quel je n'ai pas réussi à obtenir de réponse, voici l'eeeeeexplication (version longue)
J'ai crée une macro sous VBA-Word qui édite un document word. Si je reprends le document précédement édité, j'ai la
possibilité de pars ma macro de changer certaines données du document et de l'enregistrer en temps que copie afin de garder
un historique dans une base de donnée (fichierPlat). Je désirerais maintenant que dès que la copie du dit document est
enregistré, offrire à l'utilisateur la possibilité d'éffacer le document de base (ne touche pas l'historique). Mon problème
est que malgré un enregistrement d'une copie, Word refuse de considérer que le document de base est fermé et me sort un
erreur "violation de partage". Comment puis-je faire comprendre à Word que le document de base est fermé et que c'est la
copie qui est dorénavant ouvert?
Ma macro est capable de créer une offre puis, si le client est ok avec l'offre, d'en faire le contrat ou si le client n'est
pas d'accord, de reprendre le document et d'en refaire une nouvelle offre. Pour ce faire, je passe à travers ma macro ou je
saisi toutes les coordonnées de l'offre et fais mes calcules, puis en fin de macro, il édite mon document Word et
l'enregistre(p.e : "Offre_Muster_Hans_du_10_aout_10heure18.doc") puis m'en fais une Pseudo-base de données, un fichier Texte
("Offre_Muster_Hans_du_10_aout_10heure18.txt").
Si maintenant je veux la retravailler pour des raisons divers (faire le contrat ou corriger l'offre), j'ouvre le document de
base ("Offre_Muster_Hans_du_10_aout_10heure18.doc"), le document fait appel au Modèle pour la macro, ma macro fait appel à
ma pseudo-base de donnée ("Offre_Muster_Hans_du_10_aout_10heure18.txt") et récupère toutes les données afin d'éviter de
recharger le tout manuellement.
De la, je retraverser ma macro et mes formulaires, change les paramètres désirés et en fin de macro le document se
réenregistre avec un nouveau nom ("Offre_Muster_Hans_du_10_aout_10heure40.doc") par la commande :
ActiveDocument.SaveAs FileName:=nomDoc, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
ainsi que la DB ("Offre_Muster_Hans_du_10_aout_10heure40.txt").
A ce moment précis je me retrouve avec 2 documents "Offre" et 2 DB (.txt) dont l'ancienne ne me sert plus et vu la quantité
de documents édités, je vais saturer un répertoir avec des copies inutiles.
Actuellement je fais la suppression manuellement après fermeture de Word en allant dans le dossier et cliquer sur supprimer.
J'aimerais bien que ma macro soit capable dès que j'ai enregistré le nouveau document (Offre.....10heure40.doc) de me
supprimer le document de base (Offre...10heure18.doc). Le problème ne se pose pas pour les DB, car le fichier txt utilisé
est déjà refermé, et donc un éffacement sans problème.
Voici le code que j'essayé d'utiliser :
Sub effaceFichiers()
Dim fs As FileSystemObject
Dim txtFile, docFile, listFile, nom As String
Dim longueur, indice As Integer
txtFile = "Offre_Muster_Hans_du_10_aout_10heure18.txt"
docFile = "Offre_Muster_Hans_du_10_aout_10heure18.doc"
fs.DeleteFile (txtFile)
fs.DeleteFile (docFile)
On Error GoTo errormsg
fs.DeleteFile (listFile)
End Sub
Ce code je l'appel en fin de macro
L'érreur est apparament que malgré que le document affiché soit le nouveau (nouveau nom), Word ne considère pas l'ancien
document comme fermé et dès la tentative de suppression, je me prends une erreur "Violation de partage"
Le message d'erreur est le suivant:
Erreur d'exécution '70':
Permission refusée
Et avant de faire terminer ma macro, si je vais dans l'explorateur, je trouve toujours le fichier de sauvegarde de Word
(celui avec le "$") sur l'ancien fichier. Par contre, avec "ActiveDocument.Name", il me donne le nouveau nom (celui après
sauvegarde). Donc comme je le dis souvent, Word es n... Il ne ferme pas le document de base avant la fermeture complête de
Word (je présume du fait que je sois toujours dans la macro).
Y'a peut-être encore une chose à la quelle je pense, je dois travailler sur des lécteurs réseau car le C:\ nous est bloqué.
Je me demande toujours si c'est le fait de pointer sur un serveur qui me fout le boxon...
Merci pour votre aide...
MasterE30
mailto:mastermomo@hotmail.com