If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
seperate files from merge and naming them
Hello to you all.
I am currently busy with something quite hard on my work. I made a regular Mailmerge works fine. But now i want the merge to be saved in different files, not 1 large file. I used this code to accomplish this: Sub BreakOnPage() ' Used to set criteria for moving through the document by page. Application.Browser.Target = wdBrowsePage For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages") 'Select and copy the text to the clipboard. ActiveDocument.Bookmarks("\page").Range.Copy ' Open new document to paste the content of the clipboard into. Documents.Add Selection.Paste ' Removes the break that is copied at the end of the page, if any. Selection.TypeBackspace ChangeFileOpenDirectory "C:\" DocNum = DocNum + 1 ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc" ActiveDocument.Close ' Move the selection to the next page in the document. Application.Browser.Next Next i ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub Works fine, when running this code it makes seperate files named test1.doc, test2.doc etc. etc. Now comes the hard thing, i want the filename to excist in 2 things: 1 the username of the person (which is supplied from the sourcefile) and 2nd the application name (which is also supplied from the sourcefile). Doing this should make names like: Robbert Windows xp.doc So who knows what code to use??? PLS HELP ME OUT!!! --- Message posted from http://www.ExcelForum.com/ |
#2
|
|||
|
|||
Here's a method that I have used that involves creating a separate
catalog type mailmerge maindocument which creates a word document containing a table in each row of which would be your data from the database that you want to use as the filename. You first execute that mailmerge, then save that file and close it. Then execute the mailmerge that you want to create the separate files from and with the result of that on the screen, run a macro containing the following code and when the File open dialog appears, select the file containing the table created by the first mailmerge ' Throw Away Macro created by Doug Robbins ' Dim Source As Document, oblist As Document, DocName As Range, DocumentName As String Dim i As Long, doctext As Range, target As Document Set Source = ActiveDocument With Dialogs(wdDialogFileOpen) .Show End With Set oblist = ActiveDocument Counter = 1 For i = 1 To oblist.Tables(1).Rows.Count Set DocName = oblist.Tables(1).Cell(i, 1).Range DocName.End = DocName.End - 1 'Change the path in the following command to suit where you want to save the documents. DocumentName = "I:\WorkArea\Documentum\" & DocName.Text Set doctext = Source.Sections(i).Range doctext.End = doctext.End - 1 Set target = Documents.Add target.Range.FormattedText = doctext target.SaveAs FileName:=DocumentName target.Close Next i -- Please respond to the Newsgroup for the benefit of others who may be interested. Questions sent directly to me will only be answered on a paid consulting basis. Hope this helps, Doug Robbins - Word MVP "roortman " wrote in message ... Hello to you all. I am currently busy with something quite hard on my work. I made a regular Mailmerge works fine. But now i want the merge to be saved in different files, not 1 large file. I used this code to accomplish this: Sub BreakOnPage() ' Used to set criteria for moving through the document by page. Application.Browser.Target = wdBrowsePage For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages") 'Select and copy the text to the clipboard. ActiveDocument.Bookmarks("\page").Range.Copy ' Open new document to paste the content of the clipboard into. Documents.Add Selection.Paste ' Removes the break that is copied at the end of the page, if any. Selection.TypeBackspace ChangeFileOpenDirectory "C:\" DocNum = DocNum + 1 ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc" ActiveDocument.Close ' Move the selection to the next page in the document. Application.Browser.Next Next i ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub Works fine, when running this code it makes seperate files named test1.doc, test2.doc etc. etc. Now comes the hard thing, i want the filename to excist in 2 things: 1 the username of the person (which is supplied from the sourcefile) and 2nd the application name (which is also supplied from the sourcefile). Doing this should make names like: Robbert Windows xp.doc So who knows what code to use??? PLS HELP ME OUT!!! --- Message posted from http://www.ExcelForum.com/ |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Auto Deleting Space in Merge Doc when No Data | msnews.microsoft.com | Mailmerge | 5 | May 27th, 2004 04:46 PM |
Converting Merge Docs | Sandy E | Mailmerge | 0 | May 15th, 2004 09:36 PM |
How to merge a 2nd or 3rd sheet from excel to word. | Lauren Parsons | Mailmerge | 2 | April 29th, 2004 09:46 PM |