savegarder dans un meme document word depuis une macro Excel
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 :
Code:
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 |
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:
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 |
Cordialement