• Macro to print only pages which got revised in word document

    From Purell@21:1/5 to All on Wed Jul 17 21:53:23 2019
    Hello,

    This is something I need help from you guys. I have a pretty large
    document and when these documents gets revised instead of searching
    where the changes happened and print them. Is there a way to print only
    the pages where changes happened.

    I have found a Macro to do this, print only the pages where changes
    happened but when I hit print the document gets refreshed and all the
    cross referenced such as Table numbers, figure numbers get updated and
    when I used the macro it prints those pages as well.

    Below is the Marco I have got from some user in this forum:

    Sub PrintTrackedChanges()

    Dim revpagestart As Long, revpageend As Long, pageprint As String,
    changedpages As String

    pageprint = 0
    changedpages = ""

    Application.ScreenUpdating = False

    currentselectionstart = Application.Selection.Start
    currentselectionend = Application.Selection.End


    With ActiveDocument
    If .Revisions.Count = 0 Then MsgBox ("There are no revisions in this document"): GoTo Finish
    If .Revisions.Count 20 Then If MsgBox("There are" +
    Str(.Revisions.Count) + " revisions in this document. Checking and
    printing them may take some time. Continue?", vbYesNo) = vbNo Then
    GoTo Finish

    For i = 1 To .Revisions.Count
    Revisions(i).Range.Select
    revpageend = Selection.Information(wdActiveEndPageNumber)
    Selection.Collapse wdCollapseStart
    revpagestart = Selection.Information(wdActiveEndPageNumber)

    If .Revisions(i).Type = wdRevisionProperty Then GoTo Skip
    If .Revisions(i).Type = wdRevisionParagraphProperty Then GoTo
    Skip
    If .Revisions(i).Type = wdRevisionSectionProperty Then GoTo
    Skip

    If pageprint = revpageend Then GoTo Skip

    If revpagestart = revpageend Then
    changedpages = changedpages + Str(revpageend) + ", "
    pageprint = revpageend
    End If

    If revpageend revpagestart Then
    changedpages = changedpages + Str(revpagestart) + "-" +
    Str(revpageend) + ", "
    pageprint = revpageend
    End If
    Skip:
    Next i
    End With

    If changedpages = "" Then
    MsgBox "There are no changed pages to print"
    GoTo Finish
    End If

    changedpages = Left(changedpages, Len(changedpages) - 2)

    With Dialogs(wdDialogFilePrint)
    Range = wdPrintRangeOfPages
    Pages = changedpages
    Show
    End With

    Finish:

    Selection.SetRange Start:=currentselectionstart,
    End:=currentselectionend
    Application.ScreenUpdating = True

    End Sub




    --
    Purell

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From jessicahenry@21:1/5 to All on Mon Aug 5 10:37:50 2019
    Hello, thank you for sharing. I am also interested in the same problem
    as you 'run 3' (https://run3-unblocked.co)




    --
    jessicahenry

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)