Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.pagelayout
Liz130 Liz130 is offline
external usenet poster
 
Posts: 2
Default Macro to place Insert information into a footer

In Word 2003 I had a lovely macro that I used to place the filename, author,
creation date, revision date, and page number into a footer that repeated on
every page. I would open a blank file, save it to the filename I wanted it
to have, run my macro and poof the footer was exactly as I wanted. I cannot
make Word 2007 do that for me. The macro blows up with Run-time error '5941':
The requested member of the collection does not exist.

I created the macro using the record device in macro. Debug highlights the
two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain
Number 2"). _
Insert Whe=Selection.Range, RichText:=True"

Here is the full code:


Sub Foot()
'
' Foot Macro
' Create Footer for Manuscripts
'
WordBasic.ViewFooterOnly
ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"FILENAME ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"AUTHOR ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _
False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
InsertAsFullWidth:=False
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _
InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _
wdCalendarWestern, InsertAsFullWidth:=False
Selection.TypeText Text:=" "
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

  #2   Report Post  
Posted to microsoft.public.word.pagelayout
Jay Freedman Jay Freedman is offline
external usenet poster
 
Posts: 9,854
Default Macro to place Insert information into a footer

There's a lesson he Don't always assume that the macro recorder
does the right thing. In fact, there's an article about its foibles:
http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm

In this case, the recorder is completely wrong when it assumes that
the building block you clicked in the gallery came from the template
attached to the active document. In fact, it comes from the Building
Block.dotx template. There is no way to record the code that's
necessary to find that building block:

Sub Foot()
Dim oTmp As Template, BBTmp As Template
For Each oTmp In Templates
If LCase(oTmp.Name) = "building blocks.dotx" Then
Set BBTmp = oTmp
Exit For
End If
Next

If Not BBTmp Is Nothing Then
WordBasic.ViewFooterOnly
BBTmp.BuildingBlockEntries("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True

' rest of code here
End If
End Sub

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.


On Wed, 23 Sep 2009 15:54:01 -0700, Liz130
wrote:

In Word 2003 I had a lovely macro that I used to place the filename, author,
creation date, revision date, and page number into a footer that repeated on
every page. I would open a blank file, save it to the filename I wanted it
to have, run my macro and poof the footer was exactly as I wanted. I cannot
make Word 2007 do that for me. The macro blows up with Run-time error '5941':
The requested member of the collection does not exist.

I created the macro using the record device in macro. Debug highlights the
two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain
Number 2"). _
Insert Whe=Selection.Range, RichText:=True"

Here is the full code:


Sub Foot()
'
' Foot Macro
' Create Footer for Manuscripts
'
WordBasic.ViewFooterOnly
ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"FILENAME ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"AUTHOR ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _
False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
InsertAsFullWidth:=False
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _
InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _
wdCalendarWestern, InsertAsFullWidth:=False
Selection.TypeText Text:=" "
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

  #3   Report Post  
Posted to microsoft.public.word.pagelayout
Liz130 Liz130 is offline
external usenet poster
 
Posts: 2
Default Macro to place Insert information into a footer

Okay and I thank you. I cut and pasted as instructed, removing the offending
code in the process. It no longer bombs and it does create a footer and
position me in the footer but it does not automatically fill in the fields.
Waqs that capability sacrificed in 2007?

"Jay Freedman" wrote:

There's a lesson he Don't always assume that the macro recorder
does the right thing. In fact, there's an article about its foibles:
http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm

In this case, the recorder is completely wrong when it assumes that
the building block you clicked in the gallery came from the template
attached to the active document. In fact, it comes from the Building
Block.dotx template. There is no way to record the code that's
necessary to find that building block:

Sub Foot()
Dim oTmp As Template, BBTmp As Template
For Each oTmp In Templates
If LCase(oTmp.Name) = "building blocks.dotx" Then
Set BBTmp = oTmp
Exit For
End If
Next

If Not BBTmp Is Nothing Then
WordBasic.ViewFooterOnly
BBTmp.BuildingBlockEntries("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True

' rest of code here
End If
End Sub

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.


On Wed, 23 Sep 2009 15:54:01 -0700, Liz130
wrote:

In Word 2003 I had a lovely macro that I used to place the filename, author,
creation date, revision date, and page number into a footer that repeated on
every page. I would open a blank file, save it to the filename I wanted it
to have, run my macro and poof the footer was exactly as I wanted. I cannot
make Word 2007 do that for me. The macro blows up with Run-time error '5941':
The requested member of the collection does not exist.

I created the macro using the record device in macro. Debug highlights the
two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain
Number 2"). _
Insert Whe=Selection.Range, RichText:=True"

Here is the full code:


Sub Foot()
'
' Foot Macro
' Create Footer for Manuscripts
'
WordBasic.ViewFooterOnly
ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"FILENAME ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"AUTHOR ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _
False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
InsertAsFullWidth:=False
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _
InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _
wdCalendarWestern, InsertAsFullWidth:=False
Selection.TypeText Text:=" "
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub


  #4   Report Post  
Posted to microsoft.public.word.pagelayout
Jay Freedman Jay Freedman is offline
external usenet poster
 
Posts: 9,854
Default Macro to place Insert information into a footer

The Author and Date fields should update automatically, but the
Filename field never will (http://support.microsoft.com/kb/832897).
This is not new behavior in Word 2007.

To work around this, add a line just before the End Sub:

Selection.Paragraphs(1).Range.Fields.Update

Also create the AutoOpen macro described by the KB article.

On Wed, 23 Sep 2009 18:42:01 -0700, Liz130
wrote:

Okay and I thank you. I cut and pasted as instructed, removing the offending
code in the process. It no longer bombs and it does create a footer and
position me in the footer but it does not automatically fill in the fields.
Waqs that capability sacrificed in 2007?

"Jay Freedman" wrote:

There's a lesson he Don't always assume that the macro recorder
does the right thing. In fact, there's an article about its foibles:
http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm

In this case, the recorder is completely wrong when it assumes that
the building block you clicked in the gallery came from the template
attached to the active document. In fact, it comes from the Building
Block.dotx template. There is no way to record the code that's
necessary to find that building block:

Sub Foot()
Dim oTmp As Template, BBTmp As Template
For Each oTmp In Templates
If LCase(oTmp.Name) = "building blocks.dotx" Then
Set BBTmp = oTmp
Exit For
End If
Next

If Not BBTmp Is Nothing Then
WordBasic.ViewFooterOnly
BBTmp.BuildingBlockEntries("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True

' rest of code here
End If
End Sub

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.


On Wed, 23 Sep 2009 15:54:01 -0700, Liz130
wrote:

In Word 2003 I had a lovely macro that I used to place the filename, author,
creation date, revision date, and page number into a footer that repeated on
every page. I would open a blank file, save it to the filename I wanted it
to have, run my macro and poof the footer was exactly as I wanted. I cannot
make Word 2007 do that for me. The macro blows up with Run-time error '5941':
The requested member of the collection does not exist.

I created the macro using the record device in macro. Debug highlights the
two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain
Number 2"). _
Insert Whe=Selection.Range, RichText:=True"

Here is the full code:


Sub Foot()
'
' Foot Macro
' Create Footer for Manuscripts
'
WordBasic.ViewFooterOnly
ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"FILENAME ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"AUTHOR ", PreserveFormatting:=True
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _
False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _
InsertAsFullWidth:=False
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _
InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _
wdCalendarWestern, InsertAsFullWidth:=False
Selection.TypeText Text:=" "
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub


  #5   Report Post  
Posted to microsoft.public.word.pagelayout
Graham Mayor Graham Mayor is offline
external usenet poster
 
Posts: 19,312
Default Macro to place Insert information into a footer

It would be as well to also add a line to save the document before updating
the filename field, so that there is a filename to display, rather than the
default Document(n)?

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



Jay Freedman wrote:
The Author and Date fields should update automatically, but the
Filename field never will (http://support.microsoft.com/kb/832897).
This is not new behavior in Word 2007.

To work around this, add a line just before the End Sub:

Selection.Paragraphs(1).Range.Fields.Update

Also create the AutoOpen macro described by the KB article.

On Wed, 23 Sep 2009 18:42:01 -0700, Liz130
wrote:

Okay and I thank you. I cut and pasted as instructed, removing the
offending code in the process. It no longer bombs and it does
create a footer and position me in the footer but it does not
automatically fill in the fields. Waqs that capability sacrificed in
2007?

"Jay Freedman" wrote:

There's a lesson he Don't always assume that the macro recorder
does the right thing. In fact, there's an article about its foibles:
http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm

In this case, the recorder is completely wrong when it assumes that
the building block you clicked in the gallery came from the template
attached to the active document. In fact, it comes from the Building
Block.dotx template. There is no way to record the code that's
necessary to find that building block:

Sub Foot()
Dim oTmp As Template, BBTmp As Template
For Each oTmp In Templates
If LCase(oTmp.Name) = "building blocks.dotx" Then
Set BBTmp = oTmp
Exit For
End If
Next

If Not BBTmp Is Nothing Then
WordBasic.ViewFooterOnly
BBTmp.BuildingBlockEntries("Plain Number 2"). _
Insert Whe=Selection.Range, RichText:=True

' rest of code here
End If
End Sub

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.


On Wed, 23 Sep 2009 15:54:01 -0700, Liz130
wrote:

In Word 2003 I had a lovely macro that I used to place the
filename, author, creation date, revision date, and page number
into a footer that repeated on every page. I would open a blank
file, save it to the filename I wanted it to have, run my macro
and poof the footer was exactly as I wanted. I cannot make Word
2007 do that for me. The macro blows up with Run-time error
'5941': The requested member of the collection does not exist.

I created the macro using the record device in macro. Debug
highlights the two lines "
ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number
2"). _ Insert Whe=Selection.Range, RichText:=True"

Here is the full code:


Sub Foot()
'
' Foot Macro
' Create Footer for Manuscripts
'
WordBasic.ViewFooterOnly
ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain
Number 2"). _ Insert Whe=Selection.Range, RichText:=True
Selection.Fields.Add Range:=Selection.Range,
Type:=wdFieldEmpty, Text:= _ "FILENAME ",
PreserveFormatting:=True Selection.TypeText Text:=" "
Selection.Fields.Add Range:=Selection.Range,
Type:=wdFieldEmpty, Text:= _ "AUTHOR ",
PreserveFormatting:=True Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy",
InsertAsField:= _ False, DateLanguage:=wdEnglishUS,
CalendarType:=wdCalendarWestern, _ InsertAsFullWidth:=False
Selection.TypeText Text:=" "
Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm",
_ InsertAsField:=True, DateLanguage:=wdEnglishUS,
CalendarType:= _ wdCalendarWestern, InsertAsFullWidth:=False
Selection.TypeText Text:=" "
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub



Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Header/footer information Luc Microsoft Word Help 3 January 15th 08 12:12 PM
How do I insert a doc with a footer into another doc with a macro kpmcmullin Microsoft Word Help 8 August 21st 06 09:31 PM
How do place a usable footer in a Word form? LeahT Microsoft Word Help 8 April 11th 06 02:58 AM
How do I lock information in a header/footer? Monalee7 Microsoft Word Help 1 November 9th 05 08:15 PM
Inserting merged information into a footer Holly Microsoft Word Help 3 July 17th 05 05:46 PM


All times are GMT +1. The time now is 10:01 AM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"