Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 03-13-2015, 02:39 AM
NobodysPerfect NobodysPerfect is offline Retrieve page number of cross reference Windows 8 Retrieve page number of cross reference Office 2010 32bit
Competent Performer
Retrieve page number of cross reference
 
Join Date: Jan 2014
Location: Germany
Posts: 136
NobodysPerfect is on a distinguished road
Default Retrieve page number of cross reference

Hi to all

I’d like to fill a 2column list box (user form) with all headings (1. column) of a document with corresponding page number (2. column).
There is no problem to get the headings = ActiveDocument.GetCrossReferenceItems, no problem to fill listbox(es), but I simply do not know how to retrieve and save the page number.

Any ideas, help would be appreciated


NP
Reply With Quote
  #2  
Old 03-13-2015, 07:08 AM
gmaxey gmaxey is offline Retrieve page number of cross reference Windows 7 32bit Retrieve page number of cross reference Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,598
gmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nice
Default

Code:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim arrHeadings() As String
Dim lngIndex As Long, lngHeading As Long
  For lngIndex = 1 To ActiveDocument.Paragraphs.Count
    If Left(ActiveDocument.Paragraphs(lngIndex).Range.Style, Len("Heading")) = "Heading" Then
      ReDim Preserve arrHeadings(1, lngHeading)
      arrHeadings(0, lngHeading) = ActiveDocument.Paragraphs(lngIndex).Range.Text
      arrHeadings(1, lngHeading) = ActiveDocument.Paragraphs(lngIndex).Range.Information(wdActiveEndPageNumber)
      lngHeading = lngHeading + 1
    End If
  Next
  With UserForm1
    .listHeadings.Column = arrHeadings
    .listHeadings.ColumnCount = 2
    .listHeadings.ColumnWidths = "100;20"
    .Show
  End With
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #3  
Old 03-16-2015, 02:24 AM
NobodysPerfect NobodysPerfect is offline Retrieve page number of cross reference Windows 8 Retrieve page number of cross reference Office 2010 32bit
Competent Performer
Retrieve page number of cross reference
 
Join Date: Jan 2014
Location: Germany
Posts: 136
NobodysPerfect is on a distinguished road
Default

Hi,

Thanks for your answer.

Meanwhile I also tried:

Code:
Sub GetCrossReferences()
Dim oDoc As Document: Set oDoc = ActiveDocument
Dim myRefs As Variant, i As Long
   
    myRefs = oDoc.GetCrossReferenceItems(wdRefTypeHeading)
    For I = 1 To UBound(myRefs)
        With Selection.Find
            .Text = Trim$(myRefs(i))
            .Forward = True
        End With
        Selection.Find.Execute
        MsgBox myRefs(i) & " auf Seite:" & Selection.Information(wdActiveEndPageNumber), vbOKOnly
    Next
   
End Sub
Cheers
NP
Reply With Quote
  #4  
Old 03-16-2015, 03:30 AM
gmaxey gmaxey is offline Retrieve page number of cross reference Windows 7 32bit Retrieve page number of cross reference Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,598
gmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nice
Default

NP,

I'm sure that worked in your case or you wouldn't have posted it. There is, while perhaps remote, the chance of inaccuracies with that method. If heading text is repeated in a non-heading paragraph or if heading are repeated then it would return false or inaccurate results.
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #5  
Old 03-16-2015, 03:40 AM
NobodysPerfect NobodysPerfect is offline Retrieve page number of cross reference Windows 8 Retrieve page number of cross reference Office 2010 32bit
Competent Performer
Retrieve page number of cross reference
 
Join Date: Jan 2014
Location: Germany
Posts: 136
NobodysPerfect is on a distinguished road
Default

You are right , so I included the .Find.Style option to the search.

Which code, do you think, will be faster for long documents.

Cheers
NP
Reply With Quote
  #6  
Old 03-16-2015, 04:21 AM
gmaxey gmaxey is offline Retrieve page number of cross reference Windows 7 32bit Retrieve page number of cross reference Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,598
gmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nicegmaxey is just really nice
Default

I think this would be faster and more comprehensive:

Code:
Sub GetHeadings()
Dim oDoc As Document: Set oDoc = ActiveDocument
Dim varHeadings As Variant, lngIndex As Long
Dim oRng As Word.Range
  varHeadings = oDoc.GetCrossReferenceItems(wdRefTypeHeading)
  Set oRng = oDoc.Range
  For lngIndex = 1 To UBound(varHeadings)
    With oRng.Find
      .Text = Trim$(varHeadings(lngIndex))
      .Forward = True
      If .Execute Then
        If Left(oRng.Paragraphs(1).Range.Style, Len("Heading")) = "Heading" Then
          MsgBox varHeadings(lngIndex) & " auf Seite:" & oRng.Information(wdActiveEndAdjustedPageNumber), vbOKOnly
        End If
        oRng.Collapse wdCollapseEnd
      End If
    End With
  Next
lbl_Exit:
  Exit Sub
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote
  #7  
Old 03-16-2015, 04:39 AM
NobodysPerfect NobodysPerfect is offline Retrieve page number of cross reference Windows 8 Retrieve page number of cross reference Office 2010 32bit
Competent Performer
Retrieve page number of cross reference
 
Join Date: Jan 2014
Location: Germany
Posts: 136
NobodysPerfect is on a distinguished road
Default

With your comprehensive solution this thread seems to be REALLY solved .

Thanks
NP
Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Retrieve page number of cross reference Cross-reference function to update bullet header and number simultaneously dljenks Word 1 01-03-2014 01:38 PM
Retrieve page number of cross reference Reference number and cross reference for equation numbers to match the thesis format wmac Word 1 05-14-2013 08:54 PM
Cross Reference Heading Number with the word "Section" included bblouin Word 5 12-20-2012 05:27 PM
Retrieve page number of cross reference Need help with using bookmark and cross-reference mpdsal Word 1 07-26-2012 01:05 PM
2 figures cross reference mmdmov Word 0 05-05-2010 09:12 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 05:59 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft