Written by Allen Wyatt (last updated June 10, 2021)
This tip applies to Word 97, 2000, 2002, and 2003
When Alastair prints a document he wants to automatically set the date in that document to the date of the following Wednesday. For example, if today is Thursday the 13th, Alastair would want to display Wednesday the 19th if the document is printed now or on any day up to and including the 19th itself. From next Thursday (20th) Alastair would want the printed date to be the 26th, and so on.
There is no reasonable or convenient way to do this using fields in a document. (I have seem some "pick a future date" field combinations, but they are truly gigantic and not for casual use.) A better solution is to use a macro to insert, at the insertion point, the date of whatever the next Wednesday happens to be. The following is an example that shows how simple such a macro can be:
Sub ForceWednesday() Dim dMyDate As Date dMyDate = Date While WeekDay(dMyDate) <> 4 dMyDate = dMyDate + 1 Wend Selection.TypeText Text:=Format(dMyDate, "mmmm d, yyyy") End Sub
When you run the macro, it assigns the current date to the dMyDate variable. This variable is continually incremented until the weekday is 4 (a Wednesday). The date is then formatted and typed at the location of the insertion point.
The macro could be easily modified to always put the next Wednesday date in a specific place of the document. All you need to do is modify it so that it searches for, say, a bookmark and replaces the bookmark with the formatted date. You could even set up Word so that the macro is run during the BeforePrint event, which means it will be executed just before printing.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (3849) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Forcing the Date to the Next Wednesday.
Do More in Less Time! Are you ready to harness the full power of Word 2013 to create professional documents? In this comprehensive guide you'll learn the skills and techniques for efficiently building the documents you need for your professional and your personal life. Check out Word 2013 In Depth today!
When writing macros, you may need to know which day of the month a particular date represents. Here's how to use the Day ...
Discover MoreYour computer knows the current date and time, and Word provides ways you can get that date and time into your document. ...
Discover MoreIf you are working with dates in a macro, you may need to determine which week of the year a date falls within. This can ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2019-02-20 13:12:28
Mark Montoya
I am trying to have the date update to a force Saturday when opening up the document.
What am I doing wrong?
Option Explicit
Private Sub Document_Open()
Dim dMyDate As Date
dMyDate = Date
While Weekday(dMyDate) <> 7
dMyDate = dMyDate + 1
Wend
ActiveDocument.Fields(2).Select
Selection.TypeText Text:=Format(dMyDate, "mmmm d, yyyy")
End Sub
2018-09-12 13:11:44
John Nelson
Very helpful macro!
Do you have another tip page that explains searching for a bookmark and replacing the string? And what would be an efficient way of extending this approach to search/replace a series of bookmarks for each day of the week?
2016-04-02 05:31:23
Augustine
Dear Sir, since I did not get any response from you, I made the following code to Forcing the Date to the next Sunday:
Sub AutoNew()
Dim dMyDate As Date
dMyDate = Date
While Weekday(dMyDate) <> 1
dMyDate = dMyDate + 1
Wend
With ActiveDocument.Bookmarks("MyDate").Range
' Selection.TypeText Text:=Format(dMyDate, "dd.mm.yyyy")
.InsertBefore Format(dMyDate, "dd.mm.yyyy")
End With
End Sub
2016-02-05 12:34:10
Augustine
Dear Mr.Wyatt, I found this macro useful for me. However, the macro does not execute by itself. I have to manually run it. Is there a way to automatically execute it. Besides, when I bookmark, say e.g. "MyDate", what lines do I need to insert in the macro, so that the macro replaces the bookmark?
Thanks & Regards
Augustine
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2023 Sharon Parq Associates, Inc.
Comments