Home |
Search |
Today's Posts |
#1
|
|||
|
|||
Merge date fields
We need to write a LOT of letters, and want to insert the current date each
letter or group of letters are written so we can reference them later without the date auto-updating each time we open the saved files. Question: Is there a "todays date" field that won't auto update each time a file is opened, or do we have to {you're kidding, right?} manually insert the date each time we open the merge-doc? Question 2: A previous post asked this question, but it's an important one: can we SAVE our merge- letters to individual files, and if so how? Por exemplo: we have 150 letters to write using a merge-docs. Each is a separate account: can we merge to new docs and then save each letter from the "batch," or do we have to individually merge each "draft" in the merge-doc to a new doc to do this? Thanks for the help. Next post will be on HOW TO use IF mergefields to use different letters -- an "A" B" or "C" letter using the same database. |
#2
|
|||
|
|||
If you use the CreateDate field, it will display the date on which the
document was created and it will not update. Alternatively, there is a SaveDate field that will display the date that the document was last saved. For saving individual mergedocuments, you can use either of the following: Sub splitter() ' splitter Macro ' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file. Dim i As Long, Source as Document, Target as Document, Letter as Range Set Source = ActiveDocument For i = 1 to Source.Sections.Count Set Letter = Source.Sections(i).Range Letter.End=Letter.End-1 Set Target = Documents.Add Target.Range=Letter Target.SaveAs FileName:="Letter" & i Target.Close Next i End Sub If you want each file to be named based on one of the fields in the data source, 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 -- Hope this helps. Please reply to the newsgroup unless you wish to avail yourself of my services on a paid consulting basis. Doug Robbins - Word MVP "cidman" wrote in message ... We need to write a LOT of letters, and want to insert the current date each letter or group of letters are written so we can reference them later without the date auto-updating each time we open the saved files. Question: Is there a "todays date" field that won't auto update each time a file is opened, or do we have to {you're kidding, right?} manually insert the date each time we open the merge-doc? Question 2: A previous post asked this question, but it's an important one: can we SAVE our merge- letters to individual files, and if so how? Por exemplo: we have 150 letters to write using a merge-docs. Each is a separate account: can we merge to new docs and then save each letter from the "batch," or do we have to individually merge each "draft" in the merge-doc to a new doc to do this? Thanks for the help. Next post will be on HOW TO use IF mergefields to use different letters -- an "A" B" or "C" letter using the same database. |
#3
|
|||
|
|||
Doug: Thanks! But as neo-phytes, how do we create this macro or paste it into
our document? Do we have to create it as a stand-alone macro on the toolbar, or can it be saved in the template for the merge-doc? "Doug Robbins" wrote: If you use the CreateDate field, it will display the date on which the document was created and it will not update. Alternatively, there is a SaveDate field that will display the date that the document was last saved. For saving individual mergedocuments, you can use either of the following: Sub splitter() ' splitter Macro ' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file. Dim i As Long, Source as Document, Target as Document, Letter as Range Set Source = ActiveDocument For i = 1 to Source.Sections.Count Set Letter = Source.Sections(i).Range Letter.End=Letter.End-1 Set Target = Documents.Add Target.Range=Letter Target.SaveAs FileName:="Letter" & i Target.Close Next i End Sub If you want each file to be named based on one of the fields in the data source, 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 -- Hope this helps. Please reply to the newsgroup unless you wish to avail yourself of my services on a paid consulting basis. Doug Robbins - Word MVP "cidman" wrote in message ... We need to write a LOT of letters, and want to insert the current date each letter or group of letters are written so we can reference them later without the date auto-updating each time we open the saved files. Question: Is there a "todays date" field that won't auto update each time a file is opened, or do we have to {you're kidding, right?} manually insert the date each time we open the merge-doc? Question 2: A previous post asked this question, but it's an important one: can we SAVE our merge- letters to individual files, and if so how? Por exemplo: we have 150 letters to write using a merge-docs. Each is a separate account: can we merge to new docs and then save each letter from the "batch," or do we have to individually merge each "draft" in the merge-doc to a new doc to do this? Thanks for the help. Next post will be on HOW TO use IF mergefields to use different letters -- an "A" B" or "C" letter using the same database. |
#4
|
|||
|
|||
See the article "What do I do with macros sent to me by other newsgroup
readers to help me out?" at: http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm -- Hope this helps. Please reply to the newsgroup unless you wish to avail yourself of my services on a paid consulting basis. Doug Robbins - Word MVP "cidman" wrote in message ... Doug: Thanks! But as neo-phytes, how do we create this macro or paste it into our document? Do we have to create it as a stand-alone macro on the toolbar, or can it be saved in the template for the merge-doc? "Doug Robbins" wrote: If you use the CreateDate field, it will display the date on which the document was created and it will not update. Alternatively, there is a SaveDate field that will display the date that the document was last saved. For saving individual mergedocuments, you can use either of the following: Sub splitter() ' splitter Macro ' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file. Dim i As Long, Source as Document, Target as Document, Letter as Range Set Source = ActiveDocument For i = 1 to Source.Sections.Count Set Letter = Source.Sections(i).Range Letter.End=Letter.End-1 Set Target = Documents.Add Target.Range=Letter Target.SaveAs FileName:="Letter" & i Target.Close Next i End Sub If you want each file to be named based on one of the fields in the data source, 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 -- Hope this helps. Please reply to the newsgroup unless you wish to avail yourself of my services on a paid consulting basis. Doug Robbins - Word MVP "cidman" wrote in message ... We need to write a LOT of letters, and want to insert the current date each letter or group of letters are written so we can reference them later without the date auto-updating each time we open the saved files. Question: Is there a "todays date" field that won't auto update each time a file is opened, or do we have to {you're kidding, right?} manually insert the date each time we open the merge-doc? Question 2: A previous post asked this question, but it's an important one: can we SAVE our merge- letters to individual files, and if so how? Por exemplo: we have 150 letters to write using a merge-docs. Each is a separate account: can we merge to new docs and then save each letter from the "batch," or do we have to individually merge each "draft" in the merge-doc to a new doc to do this? Thanks for the help. Next post will be on HOW TO use IF mergefields to use different letters -- an "A" B" or "C" letter using the same database. |
#5
|
|||
|
|||
See http://www.gmayor.com/installing_macro.htm
You can either save it in the document template or in the default template (normal.dot). -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org cidman wrote: Doug: Thanks! But as neo-phytes, how do we create this macro or paste it into our document? Do we have to create it as a stand-alone macro on the toolbar, or can it be saved in the template for the merge-doc? "Doug Robbins" wrote: If you use the CreateDate field, it will display the date on which the document was created and it will not update. Alternatively, there is a SaveDate field that will display the date that the document was last saved. For saving individual mergedocuments, you can use either of the following: Sub splitter() ' splitter Macro ' Macro created by Doug Robbins to save each letter created by a mailmerge as a separate file. Dim i As Long, Source as Document, Target as Document, Letter as Range Set Source = ActiveDocument For i = 1 to Source.Sections.Count Set Letter = Source.Sections(i).Range Letter.End=Letter.End-1 Set Target = Documents.Add Target.Range=Letter Target.SaveAs FileName:="Letter" & i Target.Close Next i End Sub If you want each file to be named based on one of the fields in the data source, 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 -- Hope this helps. Please reply to the newsgroup unless you wish to avail yourself of my services on a paid consulting basis. Doug Robbins - Word MVP "cidman" wrote in message ... We need to write a LOT of letters, and want to insert the current date each letter or group of letters are written so we can reference them later without the date auto-updating each time we open the saved files. Question: Is there a "todays date" field that won't auto update each time a file is opened, or do we have to {you're kidding, right?} manually insert the date each time we open the merge-doc? Question 2: A previous post asked this question, but it's an important one: can we SAVE our merge- letters to individual files, and if so how? Por exemplo: we have 150 letters to write using a merge-docs. Each is a separate account: can we merge to new docs and then save each letter from the "batch," or do we have to individually merge each "draft" in the merge-doc to a new doc to do this? Thanks for the help. Next post will be on HOW TO use IF mergefields to use different letters -- an "A" B" or "C" letter using the same database. |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
How do I lock date field so it is not updated after merge? | Mailmerge | |||
How do I omit an empty date merge field? | Microsoft Word Help | |||
Mail Merge Using Date Filters With SQL Data Source | Mailmerge | |||
Can you create a multi-layered merge where certain merge fields a. | Mailmerge | |||
Using MAILMERGE fields within HYPERLINK fields for Merge to Email | Mailmerge |