A Microsoft Office (Excel, Word) forum. OfficeFrustration

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.

Go Back   Home » OfficeFrustration forum » Microsoft Word » General Discussion
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

10 most common problems for successful headers-footers?



 
 
Thread Tools Display Modes
  #21  
Old January 28th, 2007, 04:26 PM posted to microsoft.public.word.docmanagement
gil
external usenet poster
 
Posts: 18
Default 10 most common problems for successful headers-footers?

01-28-07

Thank you, John, ... a great deal ! You've given me something solid to chew on. And I'll probably need to chew on it for a while.

Question: Only 8 sections allowed per document? Can it be? But I see I can enter apparent new sections past 10.

Cheers,

Gil





"John McGhie [MVP - Word and Word Macintosh]" wrote in message ...
Hi Gil:

This thread seems to have wandered off the track a little :-)

It's neither difficult nor undesirable to do what you want in Word.

Yes, you are quite correct that the Header and footer for a page are
controlled by the section break that most immediately FOLLOWS the page in
the file.

When I say "Controls" I mean that there may be eight section breaks in a
document. If all of their headers and all of their footers are set to "Same
As Previous", the headers and footers will actually be stored in the very
last section break in the file.

The last section break is a special case: it is the default OLE object store
for the file and is hidden below the last paragraph mark in the document.
It contains not only the headers and footers but almost everything else in
the document excepting the text.

When you add section breaks to a document, each one becomes an exact copy of
the one following it. This is a bit counter-intuitive, so commit it to
memory -- it's the key to working with section breaks :-)

Assuming that you break the "Same as previous link", each section break
stores three headers and three footers: First Page, Left Page and Right
Page. The structure of the headers and footers is always there, but each
specific header or footer is not populated until you put something in it.
Once the headers and footers have been populated in a document, you can't
remove them, although you can either delete their content or hide them.

So when working with headers and footers, the first thing you need to do is
set up the default section break in the document. Then each time you insert
a new one, it will have most of the properties you need.

If you're working in VBA, you simply iterate the Stories collection. Here's
some running code that first imports a set of AutoTexts from the template
then adds them to the headers and footers as required, then sets exact
dimensions for them. The headers in this case were expressed as single
vector graphic files that contained a logo. The document itself is set up
for double-sided printing with headers and footers different first/left/ and
right. The routine down the bottom sets a variable in the document so we
can tell what version its headers and footers are.

Hope this helps

Sub ReplaceHeadersFooters()
'
' Macro to put headers and footers right
' Macro written 27 Aug 2004 by John McGhie
'
Dim aVar As Variable
Dim bHeaderDone As Boolean
Dim bStylesDone As Boolean
Dim HeaderVersion As Integer
Dim aSection As Section
Dim aHeader As HeaderFooter
Dim aFooter As HeaderFooter
Dim aStyle As Style
Dim bTrackChanges As Boolean

bTrackChanges = ActiveDocument.TrackRevisions

If ActiveDocument.Type wdTypeTemplate Then
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="Header", _
Object:=wdOrganizerObjectStyles
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="HeaderLeft", _
Object:=wdOrganizerObjectStyles
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="FooterRight", _
Object:=wdOrganizerObjectStyles
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="FooterLeft", _
Object:=wdOrganizerObjectStyles
End If

For Each aSection In ActiveDocument.Sections
With aSection.PageSetup
.SectionStart = wdSectionOddPage
.DifferentFirstPageHeaderFooter = False
.OddAndEvenPagesHeaderFooter = True
.MirrorMargins = True
.Gutter = 0
.TopMargin = InsidePageMargin
.BottomMargin = BottomMargin
.LeftMargin = InsidePageMargin
.RightMargin = OutsidePageMargin
End With

With aSection.Headers(wdHeaderFooterPrimary)
.Range.Delete
ActiveDocument.AttachedTemplate.AutoTextEntries("T enderHeader").Insert
_
Whe=.Range, RichText:=True
.Range.Style = "Header"
Call FormatHeader(.Range)
End With


With aSection.Headers(wdHeaderFooterEvenPages)
.Range.Delete
ActiveDocument.AttachedTemplate.AutoTextEntries("T enderHeader").Insert
_
Whe=.Range, RichText:=True
.Range.Style = "HeaderLeft"
Call FormatHeader(.Range)
End With

With aSection.Footers(wdHeaderFooterPrimary)
.Range.Delete
.Range.Style = "FooterRight"

ActiveDocument.AttachedTemplate.AutoTextEntries("T enderFooterRight").Insert
_
Whe=.Range, RichText:=True
End With

With aSection.Footers(wdHeaderFooterEvenPages)
.Range.Delete
.Range.Style = "FooterLeft"

ActiveDocument.AttachedTemplate.AutoTextEntries("T enderFooterLeft").Insert _
Whe=.Range, RichText:=True
End With
Next ' asection

For Each aVar In ActiveDocument.Variables
If aVar.Name = "HeaderVersion" Then bHeaderDone = True
Next ' aVar
With ActiveDocument.Variables
If bHeaderDone Then
.Item("HeaderVersion").Value = intCurrHeader
Else
.Add Name:="HeaderVersion", Value:=intCurrHeader
End If
End With

With ActiveDocument
.TrackRevisions = bTrackChanges
.ShowRevisions = True
End With

End Sub

Sub FormatHeader(aHeader As Range)
' sets format of picture in header
' macro written 27 Aug 2004 by John McGhie

With aHeader.InlineShapes(1)
.Fill.Visible = msoFalse
.Fill.Transparency = 0#
.Line.Weight = 0#
.Line.Transparency = 0#
.Line.Visible = msoFalse
.LockAspectRatio = msoTrue
.Width = 453.5433
.PictureFormat.Brightness = 0.5
.PictureFormat.Contrast = 0.5
.PictureFormat.ColorType = msoPictureAutomatic
.PictureFormat.CropLeft = 0#
.PictureFormat.CropRight = 0#
.PictureFormat.CropTop = 0#
.PictureFormat.CropBottom = 0#
End With
End Sub

On 27/1/07 9:35 AM, in article , "gil"
wrote:

Yet another try, ... guess I don't post all that often.

I hope this formatting works better than what I just posted:

I think I've found a work around for initiating new Header/Footers in an
existing document.

The following code placed at the end or your multipage letter enters an
autotext called "sectHF5" which is comprised of an "empty"
two lines of non-first page header and a non-first page footer with centered
page number. It then substitues some variables
("ptNamx" and "ptDob") and an autotext "myName" from an attached template.
The variables and autotext replace invisible white
colored text ("z.") in each of two lines of header and then converts them to
black.

The user has to be aware not to remove the section break at the bottom of the
file.

One has to make an initial autotext entry for the "blank header" and and save
it as "sectHF5" to normal.dot.

Making a "blank header section break" can be tricky. When making it, you
might need to have a hard page break above the section
break in order to reach "different first pages" in the blank headers.


Why all this? It seems that Word keeps the initial making of a file's H/F in
the last paragraph mark of the entire file. I'm not
sure it ever disappears despite make intervening section breaks. By having
exactly two lines in the header that are blank, one can
code for their removal or replacement. If you try to code deleting 3 header
lines here, you might be deleting a first line of
footer information.



Cheers,

Gil



-------------------

Sub Macro31()

'

' Macro31 Macro

' Macro recorded 1/26/2007 by Gil Carter

'



Application.DisplayAutoCompleteTips = True

NormalTemplate.AutoTextEntries("sectHF5").Insert Whe=Selection.Range, _

RichText:=True

Selection.MoveUp Unit:=wdLine, Count:=3

If ActiveWindow.View.SplitSpecial wdPaneNone Then

ActiveWindow.Panes(2).Close

End If

If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _

ActivePane.View.Type = wdOutlineView Then

ActiveWindow.ActivePane.View.Type = wdPrintView

End If

ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

Selection.TypeText Text:=" "

Application.Run MacroName:="Project.NewMacros.makeNormalFont"

Selection.MoveLeft Unit:=wdCharacter, Count:=1

Application.Run MacroName:="Project.makelinemedium.MAIN"

Selection.TypeBackspace

Selection.TypeBackspace

Selection.TypeBackspace

Selection.TypeText Text:=ptNamx & ", dob " & ptDob & ", date "

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _

"DATE \@ ""MMMM d, yyyy"" ", PreserveFormatting:=True

Selection.TypeText Text:=" "

Selection.MoveRight Unit:=wdCharacter, Count:=1

Selection.TypeText Text:="by "

Application.Run MacroName:="Project.NewMacros.makeNormalFont"

Application.Run MacroName:="Project.makelinemedium.MAIN"

Selection.TypeBackspace

Selection.TypeBackspace

Application.DisplayAutoCompleteTips = True

Templates.Application.NormalTemplate.AutoTextEntri es("myName").Insert
_

Whe=Selection.Range, RichText:=True

Selection.TypeText Text:=" "

ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

End Sub




--

Please reply to the newsgroup to maintain the thread. Please do not email
me unless I ask you to.

John McGhie
Microsoft MVP, Word and Word for Macintosh. Business Analyst, Consultant
Technical Writer.
Sydney, Australia +61 (0) 4 1209 1410

  #22  
Old January 28th, 2007, 04:41 PM posted to microsoft.public.word.docmanagement
Suzanne S. Barnhill
external usenet poster
 
Posts: 31,786
Default 10 most common problems for successful headers-footers?

I think John was using "may" in the sense of possibility rather than
permission. You can have as many sections as you want.

--
Suzanne S. Barnhill
Microsoft MVP (Word)
Words into Type
Fairhope, Alabama USA
Word MVP FAQ site: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.

"gil" wrote in message
...
01-28-07

Thank you, John, ... a great deal ! You've given me something solid to

chew on. And I'll probably need to chew on it for a while.

Question: Only 8 sections allowed per document? Can it be? But I see I

can enter apparent new sections past 10.

Cheers,

Gil





"John McGhie [MVP - Word and Word Macintosh]" wrote in

message ...
Hi Gil:

This thread seems to have wandered off the track a little :-)

It's neither difficult nor undesirable to do what you want in Word.

Yes, you are quite correct that the Header and footer for a page are
controlled by the section break that most immediately FOLLOWS the page

in
the file.

When I say "Controls" I mean that there may be eight section breaks in a
document. If all of their headers and all of their footers are set to

"Same
As Previous", the headers and footers will actually be stored in the

very
last section break in the file.

The last section break is a special case: it is the default OLE object

store
for the file and is hidden below the last paragraph mark in the

document.
It contains not only the headers and footers but almost everything else

in
the document excepting the text.

When you add section breaks to a document, each one becomes an exact

copy of
the one following it. This is a bit counter-intuitive, so commit it to
memory -- it's the key to working with section breaks :-)

Assuming that you break the "Same as previous link", each section break
stores three headers and three footers: First Page, Left Page and Right
Page. The structure of the headers and footers is always there, but

each
specific header or footer is not populated until you put something in

it.
Once the headers and footers have been populated in a document, you

can't
remove them, although you can either delete their content or hide them.

So when working with headers and footers, the first thing you need to do

is
set up the default section break in the document. Then each time you

insert
a new one, it will have most of the properties you need.

If you're working in VBA, you simply iterate the Stories collection.

Here's
some running code that first imports a set of AutoTexts from the

template
then adds them to the headers and footers as required, then sets exact
dimensions for them. The headers in this case were expressed as single
vector graphic files that contained a logo. The document itself is set

up
for double-sided printing with headers and footers different first/left/

and
right. The routine down the bottom sets a variable in the document so

we
can tell what version its headers and footers are.

Hope this helps

Sub ReplaceHeadersFooters()
'
' Macro to put headers and footers right
' Macro written 27 Aug 2004 by John McGhie
'
Dim aVar As Variable
Dim bHeaderDone As Boolean
Dim bStylesDone As Boolean
Dim HeaderVersion As Integer
Dim aSection As Section
Dim aHeader As HeaderFooter
Dim aFooter As HeaderFooter
Dim aStyle As Style
Dim bTrackChanges As Boolean

bTrackChanges = ActiveDocument.TrackRevisions

If ActiveDocument.Type wdTypeTemplate Then
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="Header", _
Object:=wdOrganizerObjectStyles
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="HeaderLeft", _
Object:=wdOrganizerObjectStyles
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="FooterRight", _
Object:=wdOrganizerObjectStyles
Application.OrganizerCopy _
Source:=ActiveDocument.AttachedTemplate.FullName, _
Destination:=ActiveDocument.FullName, _
Name:="FooterLeft", _
Object:=wdOrganizerObjectStyles
End If

For Each aSection In ActiveDocument.Sections
With aSection.PageSetup
.SectionStart = wdSectionOddPage
.DifferentFirstPageHeaderFooter = False
.OddAndEvenPagesHeaderFooter = True
.MirrorMargins = True
.Gutter = 0
.TopMargin = InsidePageMargin
.BottomMargin = BottomMargin
.LeftMargin = InsidePageMargin
.RightMargin = OutsidePageMargin
End With

With aSection.Headers(wdHeaderFooterPrimary)
.Range.Delete

ActiveDocument.AttachedTemplate.AutoTextEntries("T enderHeader").Insert
_
Whe=.Range, RichText:=True
.Range.Style = "Header"
Call FormatHeader(.Range)
End With


With aSection.Headers(wdHeaderFooterEvenPages)
.Range.Delete

ActiveDocument.AttachedTemplate.AutoTextEntries("T enderHeader").Insert
_
Whe=.Range, RichText:=True
.Range.Style = "HeaderLeft"
Call FormatHeader(.Range)
End With

With aSection.Footers(wdHeaderFooterPrimary)
.Range.Delete
.Range.Style = "FooterRight"


ActiveDocument.AttachedTemplate.AutoTextEntries("T enderFooterRight").Insert
_
Whe=.Range, RichText:=True
End With

With aSection.Footers(wdHeaderFooterEvenPages)
.Range.Delete
.Range.Style = "FooterLeft"


ActiveDocument.AttachedTemplate.AutoTextEntries("T enderFooterLeft").Insert _
Whe=.Range, RichText:=True
End With
Next ' asection

For Each aVar In ActiveDocument.Variables
If aVar.Name = "HeaderVersion" Then bHeaderDone = True
Next ' aVar
With ActiveDocument.Variables
If bHeaderDone Then
.Item("HeaderVersion").Value = intCurrHeader
Else
.Add Name:="HeaderVersion", Value:=intCurrHeader
End If
End With

With ActiveDocument
.TrackRevisions = bTrackChanges
.ShowRevisions = True
End With

End Sub

Sub FormatHeader(aHeader As Range)
' sets format of picture in header
' macro written 27 Aug 2004 by John McGhie

With aHeader.InlineShapes(1)
.Fill.Visible = msoFalse
.Fill.Transparency = 0#
.Line.Weight = 0#
.Line.Transparency = 0#
.Line.Visible = msoFalse
.LockAspectRatio = msoTrue
.Width = 453.5433
.PictureFormat.Brightness = 0.5
.PictureFormat.Contrast = 0.5
.PictureFormat.ColorType = msoPictureAutomatic
.PictureFormat.CropLeft = 0#
.PictureFormat.CropRight = 0#
.PictureFormat.CropTop = 0#
.PictureFormat.CropBottom = 0#
End With
End Sub

On 27/1/07 9:35 AM, in article ,

"gil"
wrote:

Yet another try, ... guess I don't post all that often.

I hope this formatting works better than what I just posted:

I think I've found a work around for initiating new Header/Footers in

an
existing document.

The following code placed at the end or your multipage letter enters an
autotext called "sectHF5" which is comprised of an "empty"
two lines of non-first page header and a non-first page footer with

centered
page number. It then substitues some variables
("ptNamx" and "ptDob") and an autotext "myName" from an attached

template.
The variables and autotext replace invisible white
colored text ("z.") in each of two lines of header and then converts

them to
black.

The user has to be aware not to remove the section break at the bottom

of the
file.

One has to make an initial autotext entry for the "blank header" and

and save
it as "sectHF5" to normal.dot.

Making a "blank header section break" can be tricky. When making it,

you
might need to have a hard page break above the section
break in order to reach "different first pages" in the blank headers.


Why all this? It seems that Word keeps the initial making of a file's

H/F in
the last paragraph mark of the entire file. I'm not
sure it ever disappears despite make intervening section breaks. By

having
exactly two lines in the header that are blank, one can
code for their removal or replacement. If you try to code deleting 3

header
lines here, you might be deleting a first line of
footer information.



Cheers,

Gil



-------------------

Sub Macro31()

'

' Macro31 Macro

' Macro recorded 1/26/2007 by Gil Carter

'



Application.DisplayAutoCompleteTips = True

NormalTemplate.AutoTextEntries("sectHF5").Insert

Whe=Selection.Range, _

RichText:=True

Selection.MoveUp Unit:=wdLine, Count:=3

If ActiveWindow.View.SplitSpecial wdPaneNone Then

ActiveWindow.Panes(2).Close

End If

If ActiveWindow.ActivePane.View.Type = wdNormalView Or

ActiveWindow. _

ActivePane.View.Type = wdOutlineView Then

ActiveWindow.ActivePane.View.Type = wdPrintView

End If

ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader

Selection.TypeText Text:=" "

Application.Run MacroName:="Project.NewMacros.makeNormalFont"

Selection.MoveLeft Unit:=wdCharacter, Count:=1

Application.Run MacroName:="Project.makelinemedium.MAIN"

Selection.TypeBackspace

Selection.TypeBackspace

Selection.TypeBackspace

Selection.TypeText Text:=ptNamx & ", dob " & ptDob & ", date "

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty,

Text:= _

"DATE \@ ""MMMM d, yyyy"" ", PreserveFormatting:=True

Selection.TypeText Text:=" "

Selection.MoveRight Unit:=wdCharacter, Count:=1

Selection.TypeText Text:="by "

Application.Run MacroName:="Project.NewMacros.makeNormalFont"

Application.Run MacroName:="Project.makelinemedium.MAIN"

Selection.TypeBackspace

Selection.TypeBackspace

Application.DisplayAutoCompleteTips = True


Templates.Application.NormalTemplate.AutoTextEntri es("myName").Insert
_

Whe=Selection.Range, RichText:=True

Selection.TypeText Text:=" "

ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

End Sub




--

Please reply to the newsgroup to maintain the thread. Please do not

email
me unless I ask you to.

John McGhie
Microsoft MVP, Word and Word for Macintosh. Business Analyst,

Consultant
Technical Writer.
Sydney, Australia +61 (0) 4 1209 1410


  #23  
Old February 3rd, 2007, 11:44 AM posted to microsoft.public.word.docmanagement
John McGhie [MVP - Word and Word Macintosh]
external usenet poster
 
Posts: 502
Default 10 most common problems for successful headers-footers?

Suzanne, thank you :-)

I believe the limit for the .doc format is 255 section breaks in a single
file. For the new .dotx format, it's probably unlimited, but don't quote me
on that.

Cheers


On 29/1/07 3:41 AM, in article ,
"Suzanne S. Barnhill" wrote:

I think John was using "may" in the sense of possibility rather than
permission. You can have as many sections as you want.


--

Please reply to the newsgroup to maintain the thread. Please do not email
me unless I ask you to.

John McGhie
Microsoft MVP, Word and Word for Macintosh. Business Analyst, Consultant
Technical Writer.
Sydney, Australia +61 (0) 4 1209 1410

  #24  
Old February 3rd, 2007, 03:17 PM posted to microsoft.public.word.docmanagement
gil
external usenet poster
 
Posts: 18
Default 10 most common problems for successful headers-footers?

Hmmm, ... Thanks All.

Gil

"John McGhie [MVP - Word and Word Macintosh]" wrote in message ...
Suzanne, thank you :-)

I believe the limit for the .doc format is 255 section breaks in a single
file. For the new .dotx format, it's probably unlimited, but don't quote me
on that.

Cheers


On 29/1/07 3:41 AM, in article ,
"Suzanne S. Barnhill" wrote:

I think John was using "may" in the sense of possibility rather than
permission. You can have as many sections as you want.


--

Please reply to the newsgroup to maintain the thread. Please do not email
me unless I ask you to.

John McGhie
Microsoft MVP, Word and Word for Macintosh. Business Analyst, Consultant
Technical Writer.
Sydney, Australia +61 (0) 4 1209 1410

 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 03:23 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.