Rectifier une lettre sous Word sans toucher au modèle de base

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BenHarber

XLDnaute Occasionnel
J’ai trouvé sur ce sîte (que l’auteur dont j’ai oublié le nom m’excuse !) les lignes de commande VBA qui me permettent à partir d’Excel, d’ouvrir un document Word (en l’occurrence, c’est une lettre-type), d’y coller différentes valeurs sur des signets préalablement définis, de l’imprimer et de fermer le document Word sans enregistrer les modifications (de façon à ce que cette lettre-modèle puisse être utilisée la fois suivante ; sinon les signets « sautent »)

Ce code est du type :
Dim WordDoc As Word.Document
Set WordDoc = WordApp.Documents.Open("cheminDuFichier\nomDuFichier.doc")
WordDoc.Bookmarks("Nom").Range.Text = Cells(maCel.Row, 6)
WordDoc.Bookmarks("Prenom").Range.Text = Cells(maCel.Row, 7)
WordDoc.PrintOut
Application.Wait Now + TimeValue("00:00:02")
WordDoc.Close False 'ferme le document word SANS sauvegarder les données
WordApp.Quit 'ferme la session Word

Néanmoins, « mes » utilisateurs souhaitent quelquefois rectifier leur lettre avant impression (personnalisation oblige en fonction du destinataire ! Personnalisation a priori difficilement « modelisable ») : j’ai donc supprimé les 4 dernières lignes de code.
Hélas, régulièrement, un utilisateur enregistre le modèle qu’ils viennent de rectifier…Ce modèle est alors à reconstruire (définition des signets !).

Quelqu’un entreverrait-il une astuce qui me permette de faire une copie du document Word avant (ou après ?) son ouverture de façon à ce que le modèle ne soit pas touché ? Quel en serait le code ?
PS : j’ai essayé l’enregistrement d’un modèle Word en « .dot » sur le réseau mais la commande « Set WordDoc = WordApp.Documents.Open("cheminDuFichier\nomDuFichier.dot") » me fait ouvrir directement le fichier « .dot » et non une copie de celui-ci dans un nouveau document.

Merci d’avance, ne serait-ce que d’être parvenu à la fin de ce post ! !

Cordialement,
BenHarber
 
Re : Rectifier une lettre sous Word sans toucher au modèle de base

Bonjour,
ci dessous, exemple tiré de mon grenier perso

' lancement de Word
' gestion de l'erreur "activeX" d'après archives MPFE Laurent Longre
On Error Resume Next
Set Cible = CreateObject(class:="Word.Application")
On Error GoTo 0
If Cible Is Nothing Then
Set Cible = New Word.Application
End If

'On est maintenant dans Word
With Cible
.Documents.Add Template:= _
"C:\Documents and Settings\michel\Application Data\Microsoft\Modèles\rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr.dot"
....tes instructions
End with

A+
Michel_M
 
Re : Rectifier une lettre sous Word sans toucher au modèle de base

Michel,
Bravo, c'est exactement ça ! (...et l'avantage avec ton e-grenier, c'est que je n'ai pas eu besoin de faire la poussière avant de me servir de ton code !)

Merci encore, voisin départemental.

Cordialement,
BenHarber
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

T
Réponses
11
Affichages
2 K
T
T
Réponses
1
Affichages
1 K
titous68
T
J
  • Question Question
Réponses
1
Affichages
2 K
Réponses
7
Affichages
5 K
Arnaud91
A
A
Réponses
2
Affichages
719
Arcanum
A
T
Réponses
1
Affichages
941
terminus
T
S
Réponses
7
Affichages
16 K
sarah.geek
S
J
Réponses
1
Affichages
7 K
J
W
Réponses
5
Affichages
14 K
W
A
Réponses
2
Affichages
2 K
AreYouBush
A
R
Réponses
0
Affichages
2 K
rouillld
R
Réponses
3
Affichages
1 K
Retour