Thread: [Solved] Numbering labels prints
View Single Post
 
Old 12-02-2013, 06:56 PM
macropod's Avatar
macropod macropod is offline Windows 7 32bit Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,373
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

OK, what I'd suggest is creating a plain template with the following macro in it:
Code:
Sub PrintMe()
Application.ScreenUpdating = False
Dim iStart As Long, iEnd As Long, iCount As Long, StrPages As String
On Error GoTo Done
With ActiveDocument
  iStart = .Sections.First.Headers(wdHeaderFooterPrimary).PageNumbers.StartingNumber
  If iStart = 0 Then iStart = 1
  iStart = InputBox("What is the First Number?", "Numbering Start From", iStart)
  iEnd = InputBox("What is the Last Number?", "Numbering Stop At", iStart)
  If IsNumeric(iStart) = False Or IsNumeric(iEnd) = False Then GoTo Done
  If iStart > iEnd Or iEnd = 0 Then GoTo Done
  iCount = iEnd - iStart
  If Len(.Range.Text) > 1 Then
    With .Styles("Page Number").Font
      .Size = 16
      .Name = "Arial"
      .Bold = True
    End With
    .Range.Cut
    With .Sections.First.Headers(wdHeaderFooterPrimary)
      .Range.Paste
      With .PageNumbers
        .Add PageNumberAlignment:=wdAlignPageNumberRight, FirstPage:=True
        .RestartNumberingAtSection = True
        .StartingNumber = iStart
      End With
    End With
  End If
  For iCount = iStart To iEnd - 1
    StrPages = StrPages & Chr(12)
  Next iCount
  .Range.InsertAfter StrPages
  With Application.Dialogs(wdDialogFilePrint)
    If .Show <> True Then iEnd = iStart - 1
  End With
  .Range.Delete
  .Sections.First.Headers(wdHeaderFooterPrimary).PageNumbers.StartingNumber = iEnd + 1
End With
Done:
Application.ScreenUpdating = True
End Sub
(we can modify the wording etc. to meet your needs)

Then, whenever you get one of these labels generated by the external program, simply go to Developer|Document template and attach your template. If you then run the 'PrintMe' macro, that will take care of moving the content into the header and generating the pages. As written, the code allows you to re-use the document later on, though you will need to re-save it after attaching the template (which you only need do once) to keep the template attached.
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote