répliquer un texte à plusieurs endroits ( sans signets si possible ! )

répliquer un texte à plusieurs endroits ( sans signets si possible ! ) - VB/VBA/VBS - Programmation

Marsh Posté le 17-08-2011 à 12:11:10    


Bonjour,
 
L'objectif est le suivant :
 
    * un document excel qui sert de proposition commerciale financière
    * un document word qui permet de décrire la proposition financière
 
 
1er étape : Je remplis mon document excel. Je rempli les cellules :
NomClient (qui doit être répéter plusieurs fois dans le document word)
NomProjet
Chargé d'Affaires etc...
 
Je voudrais réutiliser le contenu de la cellule pour réinsérer dans mon word et le générer à partir d'un document type. J'ai essayé les signets mais il déforme mon document word et cela ne marche pas très bien. J'ai épluché le net, j'ai entendu parler de Autotext, de publipostage.. mais je ne vois pas comment le mettre en oeuvre. Le publipostage me demande une liste de destinataires etc...
 
J'aimerai réalisé cela au travers d'une macro. Je possède Word et Excel 2010. Voici le code :
 
Code :
Sélectionner tout - Visualiser dans une fenêtre à part
 
Sub Export()
 
'-- ouverture d'un document word
 
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
 
    Set WordApp = CreateObject("Word.Application" ) '-- ouvre une session Word
    WordApp.Visible = True
    WordApp.WordBasic.DisableAutoMacros 1
    WordApp.Activate
    Set WordDoc = WordApp.Documents.Open("C:\Users\Desktop\DocProposition.docx", ReadOnly:=True)
 
' ControleSiWordOuvert
 
Dim ChampP As String
Dim ChampC As String
Dim ChampA As String
Dim ChampAM As String
 
' Variable NomClient
ChampC = Sheets("Etape 2 - Récapitulatif" ).Range("B10" )
 
 
' Variable NomProjet
ChampP = Sheets("Etape 2 - Récapitulatif" ).Range("B15" )
 
 
' Variable Chargé d'affaire
ChampA = Sheets("Etape 2 - Récapitulatif" ).Range("F12" )
 
 
 
' Insertion des signets
RemplirSignet "NomClient", ChampC, WordDoc
RemplirSignet "NomProjet", ChampP, WordDoc
RemplirSignet "ChargeAffaire", ChampA, WordDoc
 
WordDoc.Fields.Update
 
Set WordApp = Nothing
 
End Sub
 
Voici la fonction RemplirSignet
 
Code :
Sélectionner tout - Visualiser dans une fenêtre à part
 
Public Sub RemplirSignet(S As String, T As String, WordDoc2 As Word.Document)
' Remplit le signet S avec le texte T sans détruire S
On Error GoTo rien
Dim Place As Long
Place = WordDoc2.Bookmarks(S).Range.Start
WordDoc2.Bookmarks(S).Range.Text = T
WordDoc2.Bookmarks.Add Name:=S, _
    Range:=WordDoc2.Range(Place, Place + Len(T))
rien:
 
End Sub
 
J'ai lu la partie publipostage. Mais cela me le fait avec l'assistant word moi ce que j'aimerai
 
C quand je lance ma macro, c'est que cela se fait à ce moment là en code.
-> Ouvrir le fichier word de référence
-> Faire les modifications
-> Faire un Save As sous un autre nom...

Reply

Marsh Posté le 17-08-2011 à 12:11:10   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed