View Single Post
  #9   Report Post  
Posted to microsoft.public.word.pagelayout
USEN USEN is offline
external usenet poster
 
Posts: 13
Default Problems creating Macros

Hi Steven,

You seem to know quite a bit about Macros & VBA...perhaps you can help me as
well....

I have Office 2007, but I've designed a template and a Macro for an
employer who has people using both Word 2002 and 2003. Since it's for
someone else with a different versions of Word, I can't store it normally.
Since I don't know the file structure of their computers, I figured it would
be best to just create a folder on my C-drive so that they can store it in
the same place when I send it to them. Here's the problem.

I've designed 2 templates. The first template needs to call up the 2nd and
place the contents of the 2nd template at the top of various pages in the 1st
one. That's where the macro comes in. It inserts a page break then opens
the 2nd template, copies the contents and then pastes those contents at the
top of the new page. I purposely instructed the Macro so save in the
normal.dotm file so that it could be run from any other file when the
keyboard shortcut is used. It works like a charm from within the first
template as long as the template itself is open. However, when I attempt to
use the template as it is designed to be used...meaning that it opens a copy
of itself in a temporary document (Document1, Document2, etc.), then the
Macro fails to work. I get errors stating that part of the component set is
missing...the actual template that has opened a copy of itself instead of the
original.

I've deleted and re-recorded this Macro so many times...but the results are
always the same. What am I doing wrong? I have been trying to get this done
for over 5 hours now. Is it because the documents are not being stored in
the folders that Word normally stores them in?

Can anyone please give me some suggestions?

Thanks!
USEN

"StevenM" wrote:

Assuming you need more than one page setup, you might try modifing the
following to your needs. If you only need one page setup, you should create a
new template.

Sub TestPageSetup()
Dim nColumns As Long
Dim pColWidth As Single
Dim pColGutter As Single
Dim pTop As Single
Dim pBottom As Single
Dim pLeft As Single
Dim pRight As Single
Dim pWidth As Single
Dim oRange As Range
Dim footerRange As Range

pTop = 6
pBottom = 6
pLeft = 6.5
pRight = 6.5
pColGutter = 3
nColumns = 2
pColWidth = (51 - (pColGutter + pRight + pLeft)) / nColumns

Set oRange = ActiveDocument.Range(Start:=ActiveDocument.Range.S tart,
End:=ActiveDocument.Range.End)

With oRange.PageSetup
.TopMargin = PicasToPoints(pTop)
.BottomMargin = PicasToPoints(pBottom)
.LeftMargin = PicasToPoints(pLeft)
.RightMargin = PicasToPoints(pRight)
End With

With oRange.PageSetup.TextColumns
.SetCount NumColumns:=nColumns
.EvenlySpaced = True
.LineBetween = False
.Width = PicasToPoints(pColWidth)
.Spacing = PicasToPoints(pColGutter)
End With

Set footerRange = oRange.Sections(1).Footers(wdHeaderFooterPrimary). Range

With footerRange
.Delete
With .ParagraphFormat.TabStops
.ClearAll
pWidth = 51 - (pLeft + pRight)
.Add Position:=PicasToPoints(pWidth / 2),
Alignment:=wdAlignTabCenter
.Add Position:=PicasToPoints(pWidth), Alignment:=wdAlignTabRight
End With
.InsertAfter vbTab & vbTab & "Page "
.MoveEnd unit:=wdCharacter, Count:=1
.Collapse wdCollapseEnd
oRange.Fields.Add Range:=footerRange, Type:=wdFieldPage
.MoveEnd unit:=wdCharacter, Count:=1
.Collapse wdCollapseEnd
.InsertAfter vbCr
End With
End Sub


"Gabe" wrote:

I'm trying to create a macro to change my margins, make a document have 2
cols., and insert a page number at the end of the page using a keybord
command.
No matter how I try or which order I try these steps, I get the debug error
5941.
I don't know what that means, I don't know what i've done wrong.

Can anybody help?

Thanks,

Gabe