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

choupinie

Nouveau membre
onjour,

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43


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

1
2
3
4
5
6
7
8
9
10
11


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...
 

Thore

Grand Maître
Le publipostage est ce que tu as besoin !
rien ne sert de réinventer la roue !

il te faut te servir d'excel comme d'une base de donnée !

comment faire :


 

Thore

Grand Maître
avec des copie d'écran :

http://silkyroad.developpez.com/Excel/PublipostageWordExcel/
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 033
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut