Solved

Create bookmark marking just part of third paragraph of, using VBA

Posted on 2014-01-15
8
285 Views
Last Modified: 2014-01-15
Dear Experts:

below macro adds a bookmark named 'Date' to the third paragraph of a specific document.

I would like to get this macro tweaked so ...
... that not the whole third paragraph gets bookmarked but just part of it, i.e. just the date (27. Sept. 2013) should be bookmarked without the paragraph mark

Date of Evaluation: 27. Sept. 2013

Help is much appreciated. Thank you very much in advance.

Regards, Andreas


Sub AddBookmark_Date()

Dim myDoc As Document
 
Set myDoc = Documents("Project_Sheet.docm")
 myDoc.Bookmarks.Add Name:="Date", _
 Range:=myDoc.Paragraphs(3).Range
 myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

0
Comment
Question by:AndreasHermle
  • 4
  • 2
  • 2
8 Comments
 
LVL 14

Expert Comment

by:DrTribos
ID: 39782072
Something like this might work - sorry have not been able to test
Sub AddBookmark_Date()

Dim myDoc As Document
dim rngBookMark as Range 

set rngBookMark = myDoc.Paragraphs(3).Range
rngBookMark.End = rngBookMark.End - 1

Set myDoc = Documents("Project_Sheet.docm")
 myDoc.Bookmarks.Add Name:="Date",  rngBookMark 
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

0
 
LVL 49

Expert Comment

by:Rgonzo1971
ID: 39782101
Hi,

pls try

Sub AddBookmark_Date()

Dim myDoc As Document
Dim rngBookMark As Range
Set myDoc = Documents("Project_Sheet.docm")
Set rngBmk = ActiveDocument.Paragraphs(3).Range
rngBmk.Start = InStr(1, rngBmk, ":") + rngBmk.Start + 1

myDoc.Bookmarks.Add Name:="Date", Range:=rngBmk
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

Regards
0
 

Author Comment

by:AndreasHermle
ID: 39782117
Hi DrTribos,

thank you very much for your quick help. I am afraid to tell you that the macro does not work, it is throwing an error message. Moreover I just would like the date bookmarked, i.e. in the above example '27. Sept. 2013

Thank you

Regards, Andreas
0
 

Author Comment

by:AndreasHermle
ID: 39782170
Hi Rgonzo,

thank you very much for your great help. We are almost there, the paragraph mark should not be part of the bookmark, i.e. the range should be reduced by just one character at the end. I guess this is possible.

Thank you very much in advance. Regards, Andreas
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:AndreasHermle
ID: 39782185
Hi Rgonzo,

found out myself how to tweak your code so that the paragraph mark is not included in the range:

Line 8
rngBmk.MoveEnd wdCharacter, -1

So no need for you to get back with a feedback.

Thank you so much for your valuable help.

Regards, Andreas
0
 
LVL 49

Accepted Solution

by:
Rgonzo1971 earned 500 total points
ID: 39782211
Hi,

I always forget MoveStart

Sub AddBookmark_Date()

Dim myDoc As Document
Dim rngBmk As Range
Set myDoc = Documents("Project_Sheet.docm")
Set rngBmk = ActiveDocument.Paragraphs(3).Range
rngBmk.MoveStart wdCharacter, InStr(1, rngBmk, ":") + 1
rngBmk.MoveEnd wdCharacter, -1
myDoc.Bookmarks.Add Name:="Date", Range:=rngBmk
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

Regards
0
 

Author Closing Comment

by:AndreasHermle
ID: 39783441
Hi Rgonzo, good  job, thank you very much for your professional help.

Regards, Andreas
0
 
LVL 14

Expert Comment

by:DrTribos
ID: 39783987
Hi Andreas,

Thanks for your fast response - sorry I could not provide a tested solution in time.
 
Just for completeness here is the same solution with errors removed. Reading on small screen and missed the date only requirement (so took more notice of the title).

At any rate I was curious as to where my errors were and hope the comments help others better understand the code as well.
Sub AddBookmark_Date2()
Dim myDoc As Document
Dim rngBookMark As Range
Set myDoc = Documents("Project_Sheet.docm")  ' Had to move this line up as my doc is used below
Set rngBookMark = myDoc.Paragraphs(3).Range
rngBookMark.End = rngBookMark.End - 1
myDoc.Bookmarks.Add "Date", rngBookMark  ' Used lazy syntax here (my untested offering was inconsistent)
myDoc.ActiveWindow.View.ShowBookmarks = True
End Sub

Open in new window

Obviously I'm still missing the bit that finds the date.

Nice work Rgonzo  :-)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

When creating Microsoft Word-based forms there may be a need to have a form field repeated throughout the whole document. For instance, with a company name, you may want this information repeated automatically throughout the document rather than man…
Using Word 2013, I was experiencing some incredible lag when typing.  Here's what worked for me....
This video walks the viewer through the process of creating a watermark for their document, customizing it, and saving it for viewing/printing needs.
This Micro Tutorial well show you how to find and replace special characters in Microsoft Word. This is similar to carriage returns to convert columns of values from Microsoft Excel into comma separated lists.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now