Déplacer un document Word (.docm) VBA
Résolu
Danny
-
m@rina Messages postés 23923 Date d'inscription Statut Contributeur Dernière intervention -
m@rina Messages postés 23923 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à toutes et à tous,
J'essaye à ce jour de déplacer un document word via VBA. Il s'agit de déplacer un document A grâce à un bouton placé dans ce document-même A (et non pas de déplacer un document B a partir d'un document A).
Pour ce faire, je pensais d'abord copier ce document dans l'emplacement emplacementFinal puis de le supprimer de l'emplacement emplacementInitial. Code :
Public Sub Deplacer()
Dim chemin As String
chemin = emplacementFinal
If MsgBox("Êtes-vous sûre de vouloir effectuer cette opération ? Si oui, vous pourrez retrouver ce document a l'emplacement ....", vbYesNoCancel) = vbYes Then
ActiveDocument.SaveAs2 fileName:=chemin & ActiveDocument.Name
End If
End Sub
Public Sub SupprimerCeDocument()
Dim MyFile As String
MyFile = ancienChemin & ActiveDocument.Name
If MsgBox(MyFile & " will be deleted permanently", vbYesNo, "Delete this File?") = vbYes Then
ActiveDocument.Close (wdDoNotSaveChanges)
Kill MyFile
End If
End Sub
Je souhaite donc apeller Deplacer puis SupprimerCeDocument. Problème 1 : Quand jappel la fonction "deplacer" le fichier ne s'enregistre pas comme je le voudrais c'est à dire que la fenêtre me demendant où je souhaite enregistrer le document s'ouvre. Probleme 2 : Quand j'appel la fonction SupprimerCeDocument le document ne se supprime pas. J'ai pourtant vérifié les chemins avec des msgBox.
Auriez vous des solutions (éventuellement plus simples ?) pour faire cela ?
Vous souhaitant une bonne journée,
Danny
J'essaye à ce jour de déplacer un document word via VBA. Il s'agit de déplacer un document A grâce à un bouton placé dans ce document-même A (et non pas de déplacer un document B a partir d'un document A).
Pour ce faire, je pensais d'abord copier ce document dans l'emplacement emplacementFinal puis de le supprimer de l'emplacement emplacementInitial. Code :
Public Sub Deplacer()
Dim chemin As String
chemin = emplacementFinal
If MsgBox("Êtes-vous sûre de vouloir effectuer cette opération ? Si oui, vous pourrez retrouver ce document a l'emplacement ....", vbYesNoCancel) = vbYes Then
ActiveDocument.SaveAs2 fileName:=chemin & ActiveDocument.Name
End If
End Sub
Public Sub SupprimerCeDocument()
Dim MyFile As String
MyFile = ancienChemin & ActiveDocument.Name
If MsgBox(MyFile & " will be deleted permanently", vbYesNo, "Delete this File?") = vbYes Then
ActiveDocument.Close (wdDoNotSaveChanges)
Kill MyFile
End If
End Sub
Je souhaite donc apeller Deplacer puis SupprimerCeDocument. Problème 1 : Quand jappel la fonction "deplacer" le fichier ne s'enregistre pas comme je le voudrais c'est à dire que la fenêtre me demendant où je souhaite enregistrer le document s'ouvre. Probleme 2 : Quand j'appel la fonction SupprimerCeDocument le document ne se supprime pas. J'ai pourtant vérifié les chemins avec des msgBox.
Auriez vous des solutions (éventuellement plus simples ?) pour faire cela ?
Vous souhaitant une bonne journée,
Danny
A voir également:
- Word docm
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
- Supprimer une page word - Guide
2 réponses
Bonjour,
Tu es en train d'essayer de supprimer un document ouvert via une macro contenue dans ce document... Tu comprends que ce n'es pas logique.
Pour supprimer un document ouvert, il faut commencer par le fermer, et si tu le fermes, la macro ne pourrra plus fonctionner !
Conclusion : la macro doit être dans un autre document, le normal.dotm ou un complément.
m@rina
Tu es en train d'essayer de supprimer un document ouvert via une macro contenue dans ce document... Tu comprends que ce n'es pas logique.
Pour supprimer un document ouvert, il faut commencer par le fermer, et si tu le fermes, la macro ne pourrra plus fonctionner !
Conclusion : la macro doit être dans un autre document, le normal.dotm ou un complément.
m@rina
Bonjour,
comme dit m@rina, tu ne peux obliger la macro à se 'suicider'.
En plus de gérer ça dans une macro hors du document tu peux aussi faire un fichier batch (scripts vbs) que tu écris et lance à la fermeture, et qui s'occupera du déplacement.
Ici différentes façon de retarder un .bat : https://fr.wikihow.com/retarder-un-fichier-Batch
eric
comme dit m@rina, tu ne peux obliger la macro à se 'suicider'.
En plus de gérer ça dans une macro hors du document tu peux aussi faire un fichier batch (scripts vbs) que tu écris et lance à la fermeture, et qui s'occupera du déplacement.
Ici différentes façon de retarder un .bat : https://fr.wikihow.com/retarder-un-fichier-Batch
eric
Bonne soirée :)
Ben non, c'est la même réponse : on ne peut pas déplacer un document ouvert, que ce soit depuis Word ou depuis Windows.
Mais pourrait-on en savoir plus sur la finalité exacte ?
Pourquoi le document serait à un endroit x et pourquoi faudrait il le déplacer à endroit y ?
m@rina
C'est possible avec Word, mais il faut à ce moment-là créer un complément, de façon à ce que la macro ne se trouve pas dans le fichier à déplacer.
Ce complément va simplement faire un enregistrer sous dans le nouveau dossier, puis va supprimer le fichier "en cours".
Donc, tu crées un nouveau document vide, tu y mets la macro suivante :
et tu l'enregistres dans le dossier Startup de Word qui se trouve ici par défaut :
C:\Users\nom User\AppData\Roaming\Microsoft\Word\STARTUP
Ton fichier sera automatiquement considéré comme un complément car il sera chargé à chaque fois que tu ouvriras Word. Tu as d'ailleurs intérêt à mettre un bouton sur la barre d'outils Accès rapide pour lancer la macro.
Je te laisse mettre tes alertes si nécessaire. ;)
m@rina