VBA Excel word enregistrer le doc obtenu depuis mon modele sans l'ecraser

Bonjour,

J'ai créée une macro qui :

1) depuis EXCEL complète deux feuilles de mon classeur à l'aide des infos saisie dans une autre feuille

2) génère un document Word (ouvert depuis un modèle) et complète les signets.

Mon problème est que je veux que le doc Word qui s'ouvre s'enregistre tout de suite à un emplacement précis et avec un nom qui reprenne trois signets insérés (Civilité1, NOM1, Prénom1).

Il s'agit en fait d'un contrat de location et en enregistrant j'aimerais que le doc s'appelle contrat de MMEXXZZ......en reprenant les signet du document généré.

et surtout garder intact mon modèle de base (depuis lequel la macro s'exécute) sans avoir la possibilité d'enregistrer les modifications.

Voici ce que j'ai actuellement (et qui ne va pas du coup) :

Application.WindowState = xlMinimized

Set WordApp = CreateObject("Word.Application")

Set WordDoc = WordApp.Documents.Open("CHEMIN\NOM DE FICHIER.dotm") 'ouvre document Word depuis le modèle existant

On Error Resume Next
Application.DisplayAlerts = False

With WordDoc
.Bookmarks("Civilité").Range.Text = [C4].Text
.Bookmarks("NOM").Range.Text = [C7].Text
.Bookmarks("Prénom").Range.Text = [C10].Text
.Bookmarks("Adresse1").Range.Text = [C13].Text
.Bookmarks("Adresse1").Range.Text = [C16].Text
.Bookmarks("CodePostal").Range.Text = [C19].Text
.Bookmarks("Ville").Range.Text = [C22].Text
.Bookmarks("BoxNo").Range.Text = [G13].Text
.Bookmarks("M2").Range.Text = [G16].Text
.Bookmarks("DébutLoc").Range.Text = [G19].Text
.Bookmarks("FinLoc").Range.Text = [G22].Text
.Bookmarks("Loyer").Range.Text = [J4].Text
.Bookmarks("CautionLoyer").Range.Text = [J10].Text
.Bookmarks("Civilité1").Range.Text = [C4].Text
.Bookmarks("NOM1").Range.Text = [C7].Text
.Bookmarks("Prénom1").Range.Text = [C10].Text

'.Save
End With

Merci par avance pour votre aide !

Bonjour,

A tester et à adapter :

Option Explicit

Sub Test()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim CheminModele As String, CheminSauvegarde As String, NomFichier As String

    CheminModele = "D:\Documents\VBA Word\Modèles\Présentation outils.dotm"
    CheminSauvegarde = ActiveWorkbook.Path
    With ActiveSheet
         NomFichier = .Range("C4") & " " & .Range("C7") & " " & .Range("C10")
    End With

    Set WordApp = CreateObject("Word.Application")
    With WordApp
         .Visible = True
         Set WordDoc = .Documents.Add(Template:=CheminModele)
    End With

    With WordDoc

         .SaveAs2 Filename:=CheminSauvegarde & "\" & NomFichier, FileFormat:=12
         ' Suite du code
         ' .....

     End With

      WordDoc.Close True
      WordApp.Quit

      Set WordApp = Nothing:  Set WordDoc = Nothing

End Sub

Merci beaucoup Eric Kergresse, c'est exactement ce qu'il me fallait !

Rechercher des sujets similaires à "vba word enregistrer doc obtenu mon modele ecraser"