Bonjour;
j'ai beaucoup cherhcher dans les forum et dans des tutos. Au debut de realisation d une macro n j'ai pas fait attention à une tel remarque tel que 'créer un seul document word au lieu de plusieurs"!!
Bon , Ma macro , parcour n importe quel fichier excel , ligne par ligne...et , chaque ligne doit etre enregistré dans un nouveau document word puis l enregistré sous " le contenu de Cell(2,1)".
Si le fichier excel contient des centaines de lignes , le stockage des documents word va etre tres genant ; Alors, au lieu de créer pour chaqu une des ligne un nouveau document word , j voudrais créer un seul documents word contenant plusieurs page .
Reamrque: On a une template "ClassJb.doc" qui est un modele et partir de laquelle nos documenty word vont etre crées, ce miodele est sous la forme d un tableau qui va etre rempli par des signets depuis le fichiers excel puis , enregistré sous " le contenu de Cell(2,1)".
Voiçi ma macro :
et la ce que j'ai voulu l intégré dans ma macro , mais , je reçoi des données depuis excel directement , ça ve dire , j aurais pas la mise en forme du modele (template " classJb.doc):
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Sub MacroAutoJB() Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim oWdApp As Object Dim i As Byte Dim sChemin As String Dim wb As Workbook Dim OutApp As Object Dim OutMail As Object Dim strbody As String On Error Resume Next Dim nom As String Dim sName As String Dim sPath As String On Error Resume Next Dim j As Integer j = ActiveSheet.UsedRange.Rows.Count 'count number of lines used in the file Dim n As Byte n = Cells(1, Columns.Count).End(xlToLeft).Column If ActiveWorkbook.Name Like "WPaie*.xls" Then user = Environ("username") sName = ActiveWorkbook.Name sPath = "C:\Documents and Settings\" & user & "\My Documents\" sName = Replace(sName, ".xls", "_Word") MkDir sName For j = 2 To j 'start the loop the opeation until the next will be for each line used in the file Set WordApp = CreateObject("word.application") nom = Sheets(1).Cells(j, 2) mail = Sheets(1).Cells(2, n) Set oWdApp = CreateObject("Word.Application") Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\" & user & "\Class.doc") For i = 1 To n - 1 WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i) Next i WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2) WordDoc.Bookmarks("Sigmail").Range.Text = Cells(j, n) WordDoc.SaveAs Filename:=sPath & sName & "\" & nom & ".doc" WordApp.Visible = False oWdApp.Quit ActiveDocument.Close True WordApp.Quit Next j ActiveWorkbook.Close
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Set wordApp = CreateObject("Word.Application") Set wordDoc = wordApp.Documents.Add Set WS = ActiveSheet WS.UsedRange.Copy wordDoc.Paragraphs(wordDoc.Paragraphs.Count).Range.Paste wordApp.Visible = True
Partager